我在 Netbeans 中安装了 Darcula LAF,并且它可以正常工作。它修改了 IDE 的外观以及应用程序在“预览设计”弹出窗口和 GUI 生成器中的外观。
但是,运行应用程序时,外观和感觉不会保持不变。
使用此代码列出已安装的外观
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
System.out.println(info.getName());
}
显然,Darcula LaF 已安装。但是,它并未显示为已安装到编译器中。有没有办法让我在维护 Netbeans 模块的同时获得编译器的 LaF?
我查看了下载页面、GitHub 页面,甚至 Geertjan 的博客以获取有关该主题的信息,但没有发现与此相关的任何内容。
我确信我遗漏了一些非常明显的东西。不设置外观和感觉会默认为金属,并且使用操作系统默认外观和感觉也无法解决问题。
感谢所有帮助,如果格式不正确,我深表歉意。
编辑:为了清楚起见,它仅在代码中设置为 Nimbus。有一些屏幕截图,显示它在未设置为 Nimbus 时的反应。它默认为金属。 我之前删除了将其设置为 Nimbus 的代码,它使用 Metal。 我过去已将其设置为使用“Darcula”而不是 Nimbus,但它仍然使用 Metal。
我过去将其设置为使用“darcula-1.0.0”而不是 Nimbus,但它仍然使用 Metal。
我过去将其设置为使用“darcula-1.0.0.jar”而不是 Nimbus,但它仍然使用 Metal。
我过去已将其设置为使用“com.bulenkov.darcula”,但它仍然使用 Metal。
我把 Nimbus 留在那里只是为了让它以像样的东西出现。
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
System.out.println(info.getName());
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
您的代码告诉 Java 使用 Nimbus——因此无论安装了任何其他 L&F,它都会使用 Nimbus。如果您想使用另一个 L&F,请去掉安装 Nimbus L&F 的线路并将其替换为您的。
将 darcula.jar 添加到您的库中; 然后在源文件中导入 com.bulenkov.darcula.DarculaLaf 之后
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
System.out.println(info.getName());
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(new DarculaLaf());
break;
}
}
确保在“项目属性”->“打包”选项卡中勾选了“复制依赖库”。