gpt4 book ai didi

Java 更新 UIManager 默认值并重绘组件

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

我正在使用 UIManager 自定义一些 swing 组件,如下例所示,

UIManager.put("TextField.background", COLOR_BG);
UIManager.put("TextField.foreground", COLOR_FG);
UIManager.put("TextField.selectionBackground", COLOR_SB);
UIManager.put("TextField.selectionForeground", COLOR_SF);
UIManager.put("TextField.caretForeground", COLOR_CF);

应用程序启动后,我想更改一些颜色,所以我再次调用 UIManager.put 来更新 UIManager,但是组件没有更新,我尝试了 repaint()、revalidate()、updateUI()没有成功。

谢谢

最佳答案

我相信当您将颜色添加到 UIManager 时,您需要将其包装在 ColorUIResource 类中。这允许 UIManager 认为这些是默认 LAF 的一部分而不是自定义颜色,因此它会在您更新 UI 时重置这些值。

您仍然需要使用:

SwingUtilities.updateComponentTreeUI(...);

阅读 Modifying the Look and Feel 上的 Swing 教程部分了解更多信息。

关于Java 更新 UIManager 默认值并重绘组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784902/

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