gpt4 book ai didi

java - UI 管理器未更改面板背景

转载 作者:行者123 更新时间:2023-12-02 09:57:35 25 4
gpt4 key购买 nike

在我的程序中,我希望用户能够更改程序的配色方案。我有一个方法,它传递颜色来使用 UIManager 设置所有面板的背景。

public void changeColourScheme(Color c) {
UIManager.put("Panel.background", c);
SwingUtilities.updateComponentTreeUI(this);
}

但是我遇到的问题是它没有改变面板的颜色。此方法位于 JFrame 的类中。

最佳答案

直接复制自Swing API Docs .

public static void updateComponentTreeUI(Component c)

A simple minded look and feel change: ask each node in the tree to updateUI() -- that is, to initialize its UI property with the current look and feel.

注意强调。您的代码不起作用,因为您将 this 作为参数传递给 updateComponentTreeUI()。由于您将面板作为参数传递,因此只有面板内的组件和面板本身才会更新其 UI。您必须传递包含程序中所有其他面板的容器,即您的 JFrame

public void changeColourScheme(Color c) {
UIManager.put("Panel.background", c);
SwingUtilities.updateComponentTreeUI(frame); //instace of your frame
}

关于java - UI 管理器未更改面板背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55885009/

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