2014-07-11 3 views
0

У меня есть два jframe, один из которых является основным фреймом, используемым для вызова фрейма флажка, а другой - флагом, содержащим jframe.Как помнить Checkbox Checked From Other Frame

MainFrame.java

enter image description here

Как вспомнить предыдущий проверили флажок после основного кадра вызова снова флажок кадра?

CheckBox.java

enter image description here

ниже мой код кнопки действия:

private void btn_callCheckBoxActionPerformed(
    java.awt.event.ActionEvent evt) {           

    //call checkbox window 
    CheckBoxWindow cbw = new CheckBoxWindow(); 
    cbw.setVisible(true); 
    cbw.setEnabled(true); 

    this.setVisible(true); 
    this.setEnabled(false); 

}  

вызов мэйнфреймы от CheckBox кадра

private void btn_callMainFrameActionPerformed(
    java.awt.event.ActionEvent evt) {           

    //call main frame window 
    MainPage mp = new MainPage(); 
    mp.setVisible(true); 
    mp.setEnabled(true); 
    this.setEnabled(false); 
    this.setVisible(false); 
} 
+0

кеш-код где-то – Rogue

+0

уверен, что есть лучший способ, а не использовать базу данных прямо? –

+0

кешировать где-нибудь? –

ответ

2

у вас есть несколько вариантов.

1- Не создавайте новые окна при каждом нажатии на кнопки. Сохраните окна в переменных и используйте setVisible(true) и setVisible(false), чтобы показать/скрыть их. Если вы скроете фреймбокс и вы его снова покажете, флажок будет находиться в состоянии перед закрытием.

Это что-то вроде этого

public MainPage() { 
    this.checkWindow = new CheckWindow() 
} 

private void btn_callCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {           
     // show window 
     this.checkWindow.setVisible(true); 
     this.checkWindow.setEnabled(true); 

     this.setVisible(true); 
     this.setEnabled(false); 
    } 

2.- Сохранить и восстановить значения флажка с помощью preferences api Явы

1

Вот способ сделать то, что вы хотите:

В вашей CheckBoxWindow создает метод, который возвращает логическое значение вашего выбора

private boolean chck1=false; 
private boolean chck2=false; 

public boolean getCheckBoxOneState(){ 
    return chck1; 
} 
private void btn_callMainFrameActionPerformed(java.awt.event.ActionEvent evt) {           
    chck1 = jCheckBox1.isSelected(); 
    chck2 = jCheckBox2.isSelected(); 
//call main frame window 
MainPage mp = new MainPage(); 
mp.setVisible(true); 
mp.setEnabled(true); 
this.setEnabled(false); 
this.setVisible(false);} 

Затем в MainPage просто экземпляр другого кадра вызова метода, который возвращает значение флажка

boolean chck1State = new CheckBoxWindow().getCheckBoxOne(); 
0

Спасибо за помощь. не может решить его без вас, ребята. у меня все получилось. мне просто нужно скрыть окно и не создавать новое окно при нажатии кнопки.

\* 
*From Class MainFrame 
*/ 
public MainFrame(){ 

this.CheckBox = new CheckBox(this); 
} 

//button action to show checkbox frame 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){ 

CheckBox.setVisible(true); 
} 

\***********************************************************************\ 

\* 
* From class CheckBox 
\* 

public CheckBox(JFrame mainFrame) { 
this.MainFrame = MainFrame; 
} 

//button action to show MainFrame frame 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){ 
MainFrame.setVisible(); 
} 

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

  • Нет связанных вопросов^_^