【问题标题】:How to preserve background colors between Multiple JFrames如何在多个 JFrame 之间保留背景颜色
【发布时间】:2015-04-23 20:03:28
【问题描述】:

在我的程序中,我有一种方法可以更改框架颜色。我还有一种方法可以打开一个新的Jframe,它用作应用程序的设置菜单。但是,初始 jframe 中设置的值不会延续。

如何保留初始 Jframe 中设置的颜色,并在创建时将它们加载到设置对象中?

【问题讨论】:

标签: java swing colors jframe


【解决方案1】:

使用Color 参数将构造函数添加到新的JFrame,并在调用默认构造函数后设置背景颜色。

public SecondJFrame(Color c)
{
    this();
    this.getContentPane().setBackground(c);
}

另一种方法是在初始JFrame 中初始化第二个JFrame 后设置背景颜色:

SecondJFrame secondJFrame = new SecondJFrame();
secondJFrame.getContentPane().setBackground(this.getContentPane().getBackground());
secondJFrame.setVisible(true);

【讨论】:

  • 简单有效。谢谢。
【解决方案2】:

用户 singlton 设计模式添加到它你有如下设置类

public class SettingManager{
     private static YourSettingClass setting = null ; 
     private SettingManager(){}
     public static YouSettingClass getSetting(){
              if(setting==null){
                 setting = new YourSettingClass(); 
                 return setting; 
              }
         return setting ; 
     }
     // any utility method to change your setting will be here 

}

在每个 JFrame 构造函数中,您可以获得应用程序的全局设置

YourSettingClass setting = SettingManager.getSetting() ; 

【讨论】:

  • 依赖注入优于单例模式。在这种情况下这可能不是问题,但单例通常会隐藏依赖关系,这可能是单一测试的问题。
  • 您仍然可以通过 Single on YourSettingsClass 使用它,在这种情况下,spring 框架中的情况下您不需要管理器,您将通过 Autwire 直接使用该类
猜你喜欢
  • 1970-01-01
  • 2014-09-10
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 2020-04-17
  • 1970-01-01
相关资源
最近更新 更多