Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 프로그래밍 방식으로 JSplitPane의 왼쪽/오른쪽 창을 어떻게 숨길 수 있습니까?


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();
   }
}

출력

Java에서 프로그래밍 방식으로 JSplitPane의 왼쪽/오른쪽 창을 어떻게 숨길 수 있습니까?


Java에서 프로그래밍 방식으로 JSplitPane의 왼쪽/오른쪽 창을 어떻게 숨길 수 있습니까?


Java에서 프로그래밍 방식으로 JSplitPane의 왼쪽/오른쪽 창을 어떻게 숨길 수 있습니까?