我将程序中的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上获得的输出: