【问题标题】:LookAndFeel changed after Build构建后 LookAndFeel 发生了变化
【发布时间】:2014-10-07 18:10:09
【问题描述】:

我将程序中的 LookAndFeel 更改为“windows”。 Clean and Build 之后,我运行了 .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[...]

【问题讨论】:

  • 你确定你的 jar 已经重建了吗?
  • 是的,我必须在构建后用我的 jpa 连接测试更多的东西。所以我必须每 30 秒清理和构建一次:D ._.

标签: java swing netbeans jar build


【解决方案1】:

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

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);
            }
        });
    }
}

我在我的 PC 上的 Netbeans 和 CMD 上运行它,它工作正常。
Clean and Build 之后,您将在项目的dist 目录中获得一个.jar 文件。

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

java -jar MyProject.jar

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

【讨论】:

  • 希望对您有所帮助。 @P4Zi
  • 这几乎是相同的代码。我有其他框架内容。 :(
  • 可能是因为您可能使用了不同的 JVM。我的意思是您的 PC 上可能有 2 个不同的 jdk 版本,并且您在其中一个上设置了 netbeans,在 cmd 上使用另一个。检查你的cmd的类路径。也许它会这样工作。@P4Zi
【解决方案2】:

当我尝试使用此代码直接设置 LookAndFeel 时:

javax.swing.UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);

被try-catch包围,netbeans给出语法错误并说:

cannot find symbol
symbol: class windows
location: package com.sun.java.swing.plaf

所以没有找到 LaF?是这个问题吗?

问候

【讨论】:

    【解决方案3】:

    哎呀,现在,它工作正常。

    我在目录“c:\program files\java\jre\lib\”中创建了一个名为“swing.properties”的文件 与文字

    swing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
    

    现在,LookAndFeel 有了正确的主题 :) :) 感谢您的回答!

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 2019-12-04
      • 1970-01-01
      • 2014-10-15
      • 2020-05-19
      • 2021-01-04
      • 2021-10-21
      • 2017-12-27
      相关资源
      最近更新 更多