JSplitPane JComponent 의 하위 클래스입니다. 두 구성 요소를 가로 나란히 정렬할 수 있는 클래스 또는 세로 단일 창에서. 두 구성 요소의 표시 영역은 런타임 시 사용자가 조정할 수도 있습니다. JSplitPane의 중요한 메소드는 remove(), removeAll(), resetToPreferredSizes()입니다. 및 setDividerLocation() . JSplitPane은 PropertyChangeListener 를 생성할 수 있습니다. 상호 작용. 창 중 하나를 숨길 수 있습니다(왼쪽 또는 오른쪽 ) 프로그래밍 방식으로 왼쪽 버튼 클릭 또는 오른쪽 버튼 해당 버튼에 대한 액션 리스너를 생성할 수 있습니다.
예시
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JSplitPaneHideTest extends JFrame { private JButton leftBtn, rightBtn; private JSplitPane jsp; public JSplitPaneHideTest() { setTitle(" JSplitPaneHide Test"); leftBtn = new JButton("Left Button"); rightBtn = new JButton("Right Button"); jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftBtn, rightBtn); jsp.setResizeWeight(0.5); // Implemention code to hide left pane or right pane ActionListener actionListener = new ActionListener() { private int loc = 0; public void actionPerformed(ActionEvent ae) { JButton source = (JButton)ae.getSource(); if(jsp.getLeftComponent().isVisible() && jsp.getRightComponent().isVisible()) { loc = jsp.getDividerLocation(); jsp.setDividerSize(0); jsp.getLeftComponent().setVisible(source == leftBtn); jsp.getRightComponent().setVisible(source == rightBtn); } else { jsp.getLeftComponent().setVisible(true); jsp.getRightComponent().setVisible(true); jsp.setDividerLocation(loc); jsp.setDividerSize((Integer) UIManager.get("SplitPane.dividerSize")); } } }; rightBtn.addActionListener(actionListener); leftBtn.addActionListener(actionListener); add(jsp, BorderLayout.CENTER); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new JSplitPaneHideTest(); } }
출력