1

我尝试使用函数来更改我的 java 应用程序的外观,但它对我的/buttonsUIManager.setLookAndFeel的视觉外观没有影响。JFrame我使用Netbeans 7.4并且我的应用程序是Java Swing Desktop Application.

     /**
     * Main method launching the application.
     */
    public static void main(String[] args) {     
        try {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
        } catch (Exception e) { 
            System.out.println(e.getMessage());
        }
        System.out.println("init");
        launch(JavaMysqlTestApp.class, args);        
    }

我用了

  • com.sun.java.swing.plaf.motif.MotifLookAndFeel
  • javax.swing.plaf.metal.MetalLookAndFeel
  • com.sun.java.swing.plaf.gtk.GTKLookAndFeel
  • UIManager.getSystemLookAndFeelClassName()
  • UIManager.getCrossPlatformLookAndFeelClassName()

但他们都没有改变我公司的任何外观。我怎样才能使这个功能生效?

4

1 回答 1

1

可以检查所有外观:

    try {
        LookAndFeel laf = UIManager.getLookAndFeel();
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            ...
            if (laf.getName().equals(info.getName())) {
                ...;
            }
        }
    } catch (ClassNotFoundException | InstantiationException
            | IllegalAccessException | UnsupportedLookAndFeelException ex) {
        Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
    }

可能是第二次设置外观。对于发现这个问题的初学者:L&F 仅适用于摇摆;如果使用awt Button(而不是 JButton)或 JavaFX,您也不会看到任何变化。

你可以这样做:

UIManager.addPropertyChangeListener(...);

并在任何更改之后进行更改。

于 2014-03-13T07:25:22.457 回答