我将程序中的LookAndFeel更改为“ windows”。
清理并构建之后,我运行了.jar文件,但是LookAndFeel被更改了。
当我在Netbeans中编译程序时,我选择的“ Windows” LookAndFeel可以正常工作。

问题出在哪里?有图书馆错过吗?

来自德国的问候,
帕特里克

public class main{
final private static String lookAndFeel = "Windows";
public static String getLookAndFeel(){
return lookAndFeel;}
[...]
}


在我的框架课上:

public static void main(String args[]){
main ref = new main();
String lookAndFeel = ref.getLookAndFeel;
try{
for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()){
if(lookAndFeel.equals(info.getName())){
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}}}catch[...]

最佳答案

您的代码是正确的。可能是您在其他方面犯了错误。这是一个帮助您的示例。

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UnsupportedLookAndFeelException;

public class LookAndFeel {

    public static void main(String... args) {
        String lookAndFeel = "Windows";
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if (lookAndFeel.equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
            System.out.println("ERROR : " + ex);
        }

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame f = new JFrame("TESTING");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setSize(500, 300);
                f.setLayout(new java.awt.FlowLayout());
                f.add(new JButton("Click ME"));
                f.setVisible(true);
            }
        });
    }
}


我在Netbeans的PC上也通过CMD运行了此程序,并且运行正常。
Clean and Build之后,您将在项目的dist目录中获得一个.jar文件。

到达dist目录后,在cmd中写入以下命令。

java -jar MyProject.jar


其中MyProject是我创建的项目的名称。
这是我在每种情况下在PC上获得的输出:

09-05 17:40