Java Swing - 全球变化面板有粉红色的背景

时间:2011-01-07 14:00:28

标签: java swing user-interface look-and-feel uimanager

我知道您可以通过设置“外观和感觉”来更改应用程序的整体外观。有没有办法在不编写外观类的情况下全局更改组件?例如,如果您希望所有按钮都是黑色,您会如何做到这一点?我在画一个空白。

由于 ST

4 个答案:

答案 0 :(得分:4)

使用UIManager并更改外观的默认值。这里有一个很好的工具:http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/如果你运行Java Web Start程序,它将允许你浏览每个组件的键和值。

但是,只是更改背景可能会导致一些新问题,请看一下这个问题: Java- Changing swing background colour?

答案 1 :(得分:1)

一种解决方案可以是工厂模式;

您可以创建一个Factory类,用于创建具有预定义设置的按钮。每次你 需要一个按钮使用这个工厂类,你将获得具有预定义属性的对象。

Button button = factory.createButton()

class Factory{
 Button createButton(){
   Button button = new Button();
   button.setBackgroundColor(Color.PINK);
   return  button;
 }
}

答案 2 :(得分:0)

如果你有相应组件的集合,你可以循环设置BG颜色。

public void setBgColor( Color color, List< Component > components ) {
    for ( Component c : components ) {
        c.setBackgroundColor( color );
    }
}

困难的部分是获取组件列表。我通过向集合注册某些组件组并使用上述方法设置各种属性来完成此操作。这种情况是集中对象创建的一个很好的论据。

答案 3 :(得分:-1)

如果不仅需要改变颜色怎么办?如果这是一个应用程序,其中一切都在您的控制之下,那么利用继承是有意义的 - 为所有必需组件(例如面板,按钮)创建基类并覆盖paintComponent方法以满足您的需求。如果可以在实例化时通过提供从paintComponent方法调用的相关“painters”来定制基础组件中paintComponent方法的行为,则此方法可以更加模块化。

Here是一个潜在有用的链接。