首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态更改Java LAF UIDefaults?

如何动态更改Java LAF UIDefaults?
EN

Stack Overflow用户
提问于 2008-10-30 14:20:00
回答 1查看 599关注 0票数 1

我正致力于通过动态更改UIDefaults来定制Swing应用程序。最终目标是更改其中的许多内容(颜色、字体、大小、边框等),并以每个用户为基础保存结果。虽然它可能会给应用程序一些非标准的外观,但客户端会提出要求,客户端会收到。

我遇到的唯一问题是GUI只更新一次。第一次更改ui属性时,一切都很好,随后的更改不会影响任何内容。

代码语言:javascript
复制
// called from the EDT
// uiKeyName points to some ColorUIResource
UIManager.getDefaults().put(uiKeyName, <<color from color picker>>);
SwingUtilties.updateComponentTreeUI(rootWindow);

它只起作用一次,但再也不起作用了。想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2008-10-30 17:06:11

例如,当您将新颜色放入表中时,它是color对象还是ColorUIResource?据我所知,只有当current的值为nullUIResource的实例时,才会采用新值。因此,如果您插入一个普通的旧Color对象,您所做的任何后续更改都将被忽略。

此外,正如链接的文档页面所建议的那样,这可能只对字体和前景/背景颜色有帮助;当涉及到更改边框和边距等内容时,您可能就不走运了。这不是Swing的可插拔LookAndFeels设计的目的。也许您可以让客户端对基于Synth的LAF感兴趣?

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

https://stackoverflow.com/questions/250313

复制
相关文章

相似问题

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