Java应用程序的外观和操作系统外观不同

3
我被要求修改一个Java桌面应用程序(我从未在Java桌面应用程序上工作过)。
我已经获得了这个项目,我使用Netbeans 8.0.2打开了它。出现了一些奇怪的情况。
如果我从Netbeans启动应用程序(在执行“clean and build”后),使用右键单击项目 -> 运行,我会得到这个外观:

enter image description here

如果我使用命令行启动应用程序,使用java -jar C:\Users\...\NetBeansProjects\Clean\appaName.jar,我会得到这个外观(这是正确的外观,因为它是我的操作系统Windows 10的外观):

enter image description here

从下面的图片可以看出,在Netbeans上,运行时平台JRE似乎已经正确设置。

在这里输入图片描述 在这里输入图片描述 有人知道为什么吗?请耐心等待,我从未在桌面应用程序上工作过。

谢谢


2
可能是NetBeans中的运行器使用了不同于您的机器上所使用的JRE,这可能会配置不同的外观。 - Gavin
没有使用NetBeans,但应该有一些菜单选项,可以让您配置如何运行Java应用程序,它应该允许您选择JRE,并设置其他命令行选项。另一个可能性是运行程序可能会捕捉到NetBeans的外观和感觉,因此您可能需要更改NetBeans本身的外观和感觉。 - Gavin
@MDP,您可以编辑您的问题标题和正文,以更正拼写错误。并且请始终定义您使用的术语和缩写。 - Basil Bourque
@BasilBourque 您是正确的。我编辑了我的帖子。 - MDP
所有的证据都指向NetBeans,如果我是你,我会使用IntelliJ ;) - Gavin
显示剩余10条评论
1个回答

3

将外观和感觉初始化为系统默认。(尽管我更喜欢“Nimbus”)

最好在开始时完成此操作。

public static void main(String[] args) {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    ...
}

在NetBeans生成的代码中查找main函数,因为外观代码也可能是由 NetBeans 生成的。


谢谢你的帮助,但我已经在我的类中有这段代码了。 - MDP
你是否在IDE中启动了main函数(请查看主类的设置,或尝试运行主类)? - Joop Eggen
是的,Joop Eggen,我尝试运行主类(右键单击主类->运行文件)。无论如何,我可以看到在Netbeans上,主类是正确设置的(右键单击项目->属性->运行->主类字段)。不管怎样,如果我创建一个新项目,Netbeans会显示正确的外观和感觉。 我只有在这个由别人创建的项目中才有这个问题。 - MDP
你可能已经全局搜索了 setLookAndFeel,尽管它看起来更像是某些设置。创建一个新项目并仅复制源代码,以防它是项目设置。 - Joop Eggen
似乎这是与该项目和Netbeans相关的一般性问题。如果我编辑代码,然后运行项目,更改将不会应用(包括外观方面的更改)。如果我构建项目,然后运行刚刚创建的文件(project/dist/filename.jar),则更改将被应用。只有在Netbeans上编辑此项目时才会发生这种奇怪的行为。如果我使用Eclipse编辑此项目,则可以看到更改(甚至是外观方面的更改),并且我也可以在自己在Netbeans上创建的项目中看到更改。 - MDP
1
我曾经使用过Eclipse、IntelliJ和NetBeans。NetBeans很好用,比Eclipse更容易上手。也许可以在NetBeans中切换到一个Maven项目,这是我最喜欢的基础架构。这样就可以大部分独立于NetBeans的工件了。但是需要注意依赖(库)管理。我本来希望能得到其他答案的。 - Joop Eggen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接