2

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

谢谢 ST

4

4 回答 4

4

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

然而,仅仅改变背景可能会导致一些新问题,看看这个问题: Java-Changing swing background colour?

于 2011-01-07T14:19:36.913 回答
1

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

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

Button button = factory.createButton()

class Factory{
 Button createButton(){
   Button button = new Button();
   button.setBackgroundColor(Color.PINK);
   return  button;
 }
}
于 2011-01-07T14:06:50.960 回答
0

如果您有相应组件的集合,您可以循环通过它们设置 BG 颜色。

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

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

于 2011-01-07T14:21:38.013 回答
-1

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

是一个可能有用的链接。

于 2011-02-23T19:42:06.253 回答