2011-03-25 4 views
1

나는 패널의 레이아웃을 변경하려고 시도하지만 레이아웃을 변경할 때 구성 요소가 패널에 남아 많은 가방이 있기 때문에 문제가 있습니다.슬라이드 패널을 만드는 방법

import java.awt.LayoutManager; 

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class LayoutTest extends JFrame { 
public LayoutTest() { 
    initComponents(); 
} 

private void initComponents() { 

    jPanel1 = new javax.swing.JPanel(); 
    jButton = new JButton(); 

    jPanel1.setBackground(new java.awt.Color(204, 204, 255)); 
    jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 

    jButton.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) { 
      LayoutManager tempGroupLayout = jPanel1.getLayout(); 
      jPanel1.setLayout(layoutManager2); 
      jPanel1.getParent().validate(); 
      layoutManager = layoutManager2; 
      layoutManager2 = tempGroupLayout; 
     } 
    }); 

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
    jPanel1.setLayout(jPanel1Layout); 
    jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). 
      addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup(). 
      addContainerGap(286, Short.MAX_VALUE). 
      addComponent(jButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))); 
    jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). 
      addComponent(jButton, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE)); 
    layoutManager = jPanel1Layout; 

    javax.swing.GroupLayout jPanel1Layout2 = new javax.swing.GroupLayout(jPanel1); 
    jPanel1Layout2.setHorizontalGroup(
      jPanel1Layout2.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). 
      addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout2.createSequentialGroup(). 
      addComponent(jButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))); 
    jPanel1Layout2.setVerticalGroup(
      jPanel1Layout2.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING). 
      addComponent(jButton, javax.swing.GroupLayout.DEFAULT_SIZE, 442, Short.MAX_VALUE)); 
    layoutManager2 = jPanel1Layout2; 
    getContentPane().add(jPanel1); 
    pack(); 
} 

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      new LayoutTest().setVisible(true); 
     } 
    }); 
} 
private JButton jButton; 
private JPanel jPanel1; 
private LayoutManager layoutManager; 
private LayoutManager layoutManager2; 

}

답변

1

는 JSplitPane의 구성 요소에서보세요. 그들 중 몇 개를 중첩시킬 수 있습니다.

splitPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, new SplitPanePropertyChangeListener()); 

private class SplitPanePropertyChangeListener implements PropertyChangeListener {  
    public void propertyChange(java.beans.PropertyChangeEvent evt) {  
     int nv = ((Integer) evt.getNewValue()).intValue();  
     if (nv == 1) { //adjust this depending on your divider location  
     setSize(new Dimension(800, 560));  
     }  
     if (nv == 221) { //adjust this depending on your divider location  
     setSize(new Dimension(1000, 560));  
     }  
    }  
} 

위의 코드를 확인하고 나는이 목적을 위해 JSplitPane의에 대해 들어 본 적이

+0

귀하의 요구 사항, 개조,하지만 난 어떻게 그렇게이를 찾아 돈't. 어떤 아이디어를 말해 주실 수 있습니다. – itun

+0

열기/닫기 버튼의보기와 위치를 어떻게 바꿀 수 있습니까? – itun

관련 문제