Java で Netbeans を使用して GUI を作成しています。私の考えは次のようなものです:
JFrame -> contains a JPanel -> call a JDialog.
-> call a second JDialog
アイデアは、最初の JDialog で何かを読みたいということです。ユーザーがこの JDialog を終了したら、ボタンを押します。この JDialog dispose() と JPanel は別の JDialog を呼び出します。
私の考えは、Netbeans の Project Wizard のようなものか、このようなものです。
問題は、GroupLayout は一度に 1 つのコンテナでしか使用できないことです。
これは私のコードです:
public class SubjectsPanel extends javax.swing.JPanel {
private AddSubject addsubject; //Is an own class that inherites from JDialog.
private AddGroups addgroups; //Is another own class that inherites from JDialog.
private JFrame jf;
public SubjectsPanel(JFrame fr) {
jf = fr;
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
}
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
addsubject = new AddSubject(jf,true);
addsubject.setSize(700, 350);
addsubject.setLocationRelativeTo(this);
addsubject.setTitle("Adding New Subject Wizard");
addsubject.setVisible(true);
addsubject.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent we) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void windowClosing(WindowEvent we) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void windowClosed(WindowEvent we) {
if(addsubject.getBool()){
addgroup = new AddGroup(jf,true);
addgroup.setSize(700, 350);
addgroup.setLocationRelativeTo(this);
addgroup.setTitle("Adding New Group Wizard");
addgroup.setVisible(true);
}
}
@Override
public void windowIconified(WindowEvent we) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void windowDeiconified(WindowEvent we) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void windowActivated(WindowEvent we) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void windowDeactivated(WindowEvent we) {
}
});
}
}
もちろん、関係ないと思われるコードの一部は省略しています。問題は、まさにここにある WindowListener にあります。
addgroup = new AddGroup(jf,true);
addgroup.setSize(700, 350);
addgroup.setLocationRelativeTo(this);
addgroup.setTitle("Adding New Group Wizard");
addgroup.setVisible(true);
どうすればうまくできるでしょうか?
私の英語でごめんなさい。また、GroupLayouts に関する他の質問を読み込もうとしましたが、解決できません。