我正在通过动态更改 UIDefaults 来定制 Swing 应用程序。最终目标是更改其中的许多(颜色、字体、大小、边框等)并保存每个用户的结果。虽然它可能会给应用程序一些非标准的外观,但客户要求并且客户应该收到。
我遇到的唯一问题是 GUI 只会更新一次。我第一次更改 ui 属性时一切都很好,随后的更改不会影响任何事情。
// called from the EDT
// uiKeyName points to some ColorUIResource
UIManager.getDefaults().put(uiKeyName, <<color from color picker>>);
SwingUtilties.updateComponentTreeUI(rootWindow);
它工作一次,但再也不会。想法?