繁体   English   中英

Java Swing-将面板全局更改为具有粉红色背景

[英]Java Swing - Globally Change Panels to Have Pink Background

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

感谢ST

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

但是,仅更改背景可能会引起一些新问题,请看以下问题: Java-更改背景色?

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

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

Button button = factory.createButton()

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

如果您有相应组件的集合,则可以遍历它们以设置BG颜色。

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

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

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

是一个潜在有用的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM