Я создаю графический интерфейс с Netbeans в JAVA. Моя идея что-то вроде этого:Проблемы при создании графического интерфейса с NetBeans: GroupLayout может использоваться только с одним контейнером за раз?
JFrame -> contains a JPanel -> call a JDialog.
-> call a second JDialog
Идея заключается в том, что я хочу что-то в первом JDialog читать, а когда финишная пользователь с этим JDialog, он нажать на кнопку. Этот JDialog dispose() и JPanel вызывает другой JDialog.
Моя идея - это что-то вроде мастера проекта в Netbeans или что-то в этом роде.
Проблема: GroupLayout может использоваться только с одним контейнером за раз.
Это мой код:
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, но я не могу решить проблему с ними.