2011-12-30 4 views
0

저는 Powerpoint와 같은 간단한 슬라이드 쇼 프로그램을 만들려고합니다. GUI를 디자인하기 위해 Netbeans를 사용하고 GUI 코드를 Netbeans에서 Eclipse로 복사했습니다. 내가 JPanel를 확장 내 자신의 클래스에 오른쪽에 jPanel1를 변경하려면,Java 레이아웃 NetBeans와 Eclipse의 위치 지정

pg = new javax.swing.JPanel(); 
    jScrollPane1 = new javax.swing.JScrollPane(); 
    jPanel1 = new javax.swing.JPanel(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    setBackground(new java.awt.Color(153, 153, 153)); 

    pg.setBackground(new java.awt.Color(255, 255, 255)); 
    pg.setForeground(new java.awt.Color(255, 255, 255)); 
    pg.setPreferredSize(new java.awt.Dimension(255, 234)); 

    javax.swing.GroupLayout pgLayout = new javax.swing.GroupLayout(pg); 
    pg.setLayout(pgLayout); 
    pgLayout.setHorizontalGroup(
     pgLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 357, Short.MAX_VALUE) 
    ); 
    pgLayout.setVerticalGroup(
     pgLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 257, Short.MAX_VALUE) 
    ); 

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
    jPanel1.setLayout(jPanel1Layout); 
    jPanel1Layout.setHorizontalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 62, Short.MAX_VALUE) 
    ); 
    jPanel1Layout.setVerticalGroup(
     jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 279, Short.MAX_VALUE) 
    ); 


    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(pg, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE) 
     .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(pg, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 

    pack(); 

내 문제는 다음과 같습니다

넷빈즈는 다음 코드를 생성합니다. 이를 위해, 나는 썼다 :

JPanel jPanel1 = new JPanel(); 
jPanel1.add(new ToolBoxGUI("ToolBox")); 

을하지만이 코드를 실행하면, 오른쪽에는 ToolBoxGUI 클래스 버튼이 없습니다. 이 문제를 어떻게 해결해야합니까?

+0

Netbeans GUI에 Bean을 추가하는 것이 한 가지 방법입니다. 나는 현재이 프로그램을 갖고 있지 않지만 GUI 작성자 오른쪽에 도구 상자가 있다고 생각합니다. 옵션 중 하나는 빈을 추가하는 것입니다. "Create Bean"을 클릭하고 "ToolBoxGUI"를 클래스 이름으로 입력하십시오. 그런 다음 패널로 드래그 할 수 있습니다. – eboix

+0

장기적으로 손으로 UI를 디자인하는 것이 좋습니다. [레이아웃 관리자에 대한 시각 안내서] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)는 차이점을 이해하는 데 도움이되지만 일반적으로 'BoxLayout'을 발견했습니다 ('Box' 클래스),'BorderLayout','FlowLayout'가 가장 유용합니다. 나는 [MiG 레이아웃 매니저] (http://miglayout.com/)를 사용한 적이 없지만 어떤 사람들은 정말로 그것을 좋아한다는 것을 알고 있습니다. NetBeans를 사용하면 장기적으로 더 행복해집니다 :) – Paul

답변

0

jPanel1은 GroupLayout을 사용합니다. 표시하려면 ToolBoxGUI를이 GroupLayout에 추가해야합니다. 당신이 원하는 경우,

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
jPanel1.setLayout(jPanel1Layout); 
jPanel1Layout.setHorizontalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
    .addGap(0, 62, Short.MAX_VALUE) 
); 
jPanel1Layout.setVerticalGroup(
    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
    .addGap(0, 279, Short.MAX_VALUE) 
); 

jPanel1.setLayout(new BorderLayout()); 

로 교체 또는 : 당신이 원하는 것은 ToolBoxGUI에게 jPanel1의 고유 한 구성 요소를 만들 경우, jPanel1의 레이아웃을 설정하는 코드를 제거 jPanel1을 ToolBoxGUI로 대체하고 위와 동일한 코드를 제거한 다음 jPanel1을

으로 초기화하십시오.
jPanel1 = new ToolBoxGUI(); 
관련 문제