Etiqueta / TextField / LabeledText copiables en JavaFX

Solo quiero crear tags copiables en JavaFX. Intenté crear TextField sin fondo, sin borde de enfoque y color de fondo predeterminado, pero no tuve éxito. He encontrado muchas preguntas sobre cómo eliminar el fondo de foco del control, pero todo eso parece “piratear”.

¿Hay alguna solución estándar para implementar texto copiable?

Puede crear un TextField sin el borde y el color de fondo con css:

import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.TextField; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class CopyableLabel extends Application { @Override public void start(Stage primaryStage) { TextField copyable = new TextField("Copy this"); copyable.setEditable(false); copyable.getStyleClass().add("copyable-label"); TextField tf2 = new TextField(); VBox root = new VBox(); root.getChildren().addAll(copyable, tf2); Scene scene = new Scene(root, 250, 150); scene.getStylesheets().add(getClass().getResource("copyable-text.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } 

y

copyable-text.css:

 .copyable-label, .copyable-label:focused { -fx-background-color: transparent ; -fx-background-insets: 0px ; }