首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java UIManager行为

Java UIManager行为
EN

Stack Overflow用户
提问于 2011-05-14 20:47:18
回答 2查看 484关注 0票数 1

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

提前感谢您的回复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-14 21:50:09

我不知道如何准确地回答你的问题。我所能做的就是展示我是如何使用不同的UI来运行我的应用程序的,请看下面。这个例子展示了我是如何从the Substance library安装一个Look and Feel的。

代码语言:javascript
复制
        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);的注释,我猜当你在应用程序已经运行的时候改变你的外观时需要它。

希望能对你有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-05-14 23:05:32

例如,当我将JLabel的字体设置为Aria1,大小为8,字体为粗体时,得到的文本将是一个破折号"-“,而不是指定的文本。

可能是因为您的代码没有使用布局管理器,而您在代码中的某个地方使用了setBounds(...)或setPreferredSize()。

所以我想知道,在更改Java

时,有没有一组需要遵循的步骤,以便我选择的任何LAF。

请阅读Modifying the Look and Feel上的Swing教程中的章节,以获得解释和工作示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6001919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档