gpt4 book ai didi

java - 设置不同的外观和感觉在从主类打开的 java 类上不起作用

转载 作者:行者123 更新时间:2023-12-01 23:13:54 24 4
gpt4 key购买 nike

我的java程序有多个类,每个类都包含一个单独的JFrame。所有三个 JFrame 都在我的主类中启动,并设置为 setVisible(false),以便它们被隐藏。单击 JPopUpMenu 中的按钮时,相应的 JFrame 将设置为 setVisible(true)。在这些类中我定义了:

 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

当我通过右键单击 NetBeans 中的 .java 文件并选择“运行文件”来单独运行每个类时,外观效果完美。但是,当我在 JFrame 上运行主类和 setVisible(true) 时,外观不起作用。我认为这可能只是 NetBeans 的一个错误,因此我尝试构建 .jar 并运行它。问题仍然存在。主类的外观和感觉已使用相同的代码设置,并且效果完美。我不知道该怎么办。如有任何帮助,我们将不胜感激。

最佳答案

来自JavaDocs of UIManager :

Once the look and feel has been changed it is imperative to invoke updateUI on all JComponents. The method SwingUtilities.updateComponentTreeUI(java.awt.Component) makes it easy to apply updateUI to a containment hierarchy. Refer to it for details. The exact behavior of not invoking updateUI after changing the look and feel is unspecified. It is very possible to receive unexpected exceptions, painting problems, or worse.

如果您在创建框架后更改了外观(即使它们还不可见),那么您需要 updateUI 才能使更改生效(或者更好,如果您知道自己总是想要使用特定的外观和感觉,然后在首先创建框架之前在主类中设置它)。

关于java - 设置不同的外观和感觉在从主类打开的 java 类上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21516365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com