tutorial que ejemplos java swing javafx gtk look-and-feel

que - Intentando crear SwingNodes en JavaFX con GTKLookAndFeel, congela la aplicación



javafx tutorial netbeans (1)

Tenemos una aplicación Java que usó Swing, pero la estamos migrando a JavaFX. Por lo tanto, SwingNode el antiguo código Swing en SwingNode y lo reemplazamos paso a paso.

Antes de migrar, la aplicación Swing usa com.sun.java.swing.plaf.gtk.GTKLookAndFeel como apariencia y comportamiento (predeterminado en Ubuntu). Usamos el siguiente código para configurarlo (si está disponible):

for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if (info.getClassName().equals("com.sun.java.swing.plaf.gtk.GTKLookAndFeel")) { UIManager.setLookAndFeel(info.getClassName()); } }

Esto funcionó bien. Sin embargo, después de cambiar a JavaFX, la llamada a UIManager.setLookAndFeel() congela la aplicación y no ocurre nada. La configuración manual de la apariencia es necesaria ya que queremos seguir GTKLookAndFeel estilo a los componentes de Swing que no se han migrado a JavaFX en función de GTKLookAndFeel .

Más información: Esto solo no funciona con com.sun.java.swing.plaf.gtk.GTKLookAndFeel , ya que funciona cuando se usan javax.swing.plaf.metal.MetalLookAndFeel , javax.swing.plaf.nimbus.NimbusLookAndFeel o com.sun.java.swing.plaf.motif.MotifLookAndFeel .

¿Qué podemos hacer para que funcione con GTKLookAndFeel para GTKLookAndFeel nuestros componentes Swing en SwingNode s?


Los componentes de Gui deben actualizarse en hilos de GUI.

Pruebe uno de los siguientes:

SwingUtilities.invokeLater(() -> { //commands }); javafx.application.Platform.runLater(() -> { //commands });