2015-04-23 2 views
0

В моей программе у меня есть способ изменить цвета рамки. У меня также есть способ открыть новый Jframe, который используется в качестве меню настроек для приложения. Однако значения, установленные в исходном jframe, не будут перенесены.Как сохранить цвета фона между несколькими JFrames

Как сохранить цвета, установленные в начальном Jframe, и загрузить их в объект настроек по мере его создания?

+0

Поместите цвета в класс модели и передайте экземпляр класса модели в несколько JFrames. –

+0

Благодарим за помощь! – user4702874

+2

Обязательное чтение: [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice) –

ответ

1

Добавьте конструктор в свой новый JFrame с параметром Color и установите цвет фона после вызова конструктора по умолчанию.

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

Другим способ установить цвет фона после инициализации вашего второго JFrame в вашем начальной JFrame:

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

Простой и эффективный , Спасибо. – user4702874

0

пользователя Синглтон шаблон дизайна добавить к нему классу настроек у вас есть, как следовать

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() ; 
+0

Большое спасибо! – user4702874

+0

Инъекционная инъекция, благоприятная по образцу Singleton. В этом случае это может не быть проблемой, но Singletons часто скрывают зависимости, и это может быть проблемой для унитарного тестирования. – Renatols

+0

Все еще вы можете использовать его Single на YourSettingsClass, что в случае весеннего фреймворка, в этом случае вам не нужен менеджер, и вы будете использовать класс напрямую Autwire it –

Смежные вопросы