gpt4 book ai didi

Java UIManager 行为

转载 作者:行者123 更新时间:2023-11-29 06:13:18 24 4
gpt4 key购买 nike

我正在试验 Java UIManager 和不同外观的使用。我很快发现,这不仅仅是在小程序开始时设置外观并奇迹般地看到 UI 产生的变化的问题。我发现的是,对于某些 LAF,我会发现奇怪的不可预测的行为和失败。例如,当我将 JLabel 的字体设置为 Arial,大小为 8 且字体为粗体时,生成的文本将是单个破折号“-”,而不是使用 Windows 或经典 Windows LAF 的指定文本。在其他情况下,如 Mac LAF,JTrees 停止工作(我在 Windows 平台上实现我的应用程序)。所以我想知道,在更改 Java LAF 时是否需要遵循一组步骤,以便无论我选择什么 LAF,我都可以确保 Swing 的其余部分具有可靠且可预测的行为?是否只有某些 LAF 的强壮而其余的只属于内心勇敢的人?

预先感谢您的回复。

最佳答案

我不知道如何准确回答你的问题。我所能做的就是展示我如何使用不同的 UI 运行我的应用程序,请参见下文。该示例显示了我如何从 the Substance library 安装外观和感觉之一。 .

        public static void main(String[] argv) throws InterruptedException, InvocationTargetException
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
UIManager.setLookAndFeel(new SubstanceSaharaLookAndFeel());
//Some people say the below should also be called but even without it always worked for me so what is this for then?
//SwingUtilities.updateComponentTreeUI(frame);
}catch(Exception e)
{
Logger.getLogger(MyApplicationFrame.class.getName()).log(Level.SEVERE, null, e);
System.out.println("Substance look and feel failed to initialize");
}
new MyApplicationFrame();
}
});
}

至于代码中有关调用 SwingUtilities.updateComponentTreeUI(frame); 的注释,我猜想在应用程序已经运行时更改外观时需要它。

希望对您有所帮助。

关于Java UIManager 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001919/

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