2013-05-26 2 views
0

Я создаю графический интерфейс с 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, но я не могу решить проблему с ними.

ответ

0

GroupLayout могут быть использованы только с одной Container в то время, но вы можете иметь произвольное число Container экземпляров каждая из которых имеет свой собственный GroupLayout. В этом example попробуйте добавить третий экземпляр GroupPanel.

f.add(new GroupPanel(3)); 

image

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

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