2012-10-04 6 views
1
내가 레이아웃이 코드 작성 SWING를 사용하여 간단한 그룹 레이아웃

구성 요소하지 null이어야합니다 - 자바 스윙

와을 writting하고

:

JPanel unterPanel = new JPanel(); 
    GroupLayout layout = new GroupLayout(unterPanel); 
    unterPanel.setLayout(layout); 
    layout.setAutoCreateGaps(true); 
    layout.setAutoCreateContainerGaps(true); 

    layout.setHorizontalGroup(
      layout.createSequentialGroup() 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
        .addComponent(header) 
        .addComponent(tableG) 
        .addGroup(layout.createSequentialGroup() 
          .addComponent(b3) 
          .addComponent(b4) 
          .addComponent(b5) 
          .addComponent(b6) 
          )) 
      ); 
    layout.setVerticalGroup(
      layout.createSequentialGroup() 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
        .addComponent(b3) 
        .addComponent(b4) 
        .addComponent(b5) 
        .addComponent(b6) 
        ) 
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
          .addComponent(header) 
          .addComponent(tableG)) 
      ); 

    layout.linkSize(SwingConstants.HORIZONTAL, b3, b4, b5, b6); 

    return unterPanel; 

을하지만 코드를 컴파일 할 때 내가 얻을 :

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Component must be non-null 
    at javax.swing.GroupLayout$ComponentSpring.<init>(GroupLayout.java:2878) 
    at javax.swing.GroupLayout$ComponentSpring.<init>(GroupLayout.java:2858) 
    at javax.swing.GroupLayout$Group.addComponent(GroupLayout.java:1490) 
    at javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2414) 
    at javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2384) 
    at javax.swing.GroupLayout$Group.addComponent(GroupLayout.java:1471) 
    at javax.swing.GroupLayout$ParallelGroup.addComponent(GroupLayout.java:2406) 
    at gui.guimain.Produktmaingui(guimain.java:97) 
    at gui.guimain.showStart(guimain.java:306) 
    at gui.guimain$1.run(guimain.java:410) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 

왜?

나는 대답을 확인합니다 !!! 당신이 추가 구성 요소의

+0

아니요, 예외가 없기 때문에 P – maximus

답변

4

하나는, 즉, 이러한 변수 중 하나가 null 인 :

  • 헤더
  • tableG
  • B3
  • B4
  • B5
  • B6

그리고 스택 추적에 자세히 나와있는 것처럼 클래스의 97 번 줄에 범인이 있습니다.

2

gui.guimain.Produktmaingui의 97 행으로 이동하면 addComponent가 호출됩니다. 인수는 아마 null입니다. 인수가 null가 아닌 경우, 아마 인수의 내용.

+0

당신의 대답은 ... 제가 타이핑 오류를 수정했고 모든 것이 이제는 잘 돌아갑니다 !!! – maximus

1
  • GridLayout와 다른 JPanel을 만들고 setVisible(false) (BorderLayout.SOUTH)

  • 이러한 토우 좌측 1st JButton 거기 4 버튼 변경을 넣어 JScrollPane (BorderLayout.CENTER)

  • JTable 넣어 JPanelsJTabbedPanes Tab