Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào chúng ta có thể ẩn ngăn bên trái / bên phải của JSplitPane theo lập trình trong Java?


A JSplitPane là một lớp con của JComponent lớp cho phép chúng tôi sắp xếp hai thành phần cạnh nhau theo chiều ngang hoặc theo chiều dọc trong một ngăn duy nhất. Người dùng cũng có thể điều chỉnh vùng hiển thị của cả hai thành phần trong thời gian chạy. Các phương thức quan trọng của JSplitPane là remove (), removeAll (), resetToPreferredSizes () setDividerLocation () . JSplitPane có thể tạo PropertyChangeListener giao diện. Chúng tôi có thể ẩn một trong các ngăn ( trái hoặc phải ) theo chương trình bằng cách nhấp vào nút bên trái hoặc nút bên phải và có thể tạo trình xử lý hành động cho các nút đó.

Ví dụ

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

Đầu ra

Làm cách nào chúng ta có thể ẩn ngăn bên trái / bên phải của JSplitPane theo lập trình trong Java?


Làm cách nào chúng ta có thể ẩn ngăn bên trái / bên phải của JSplitPane theo lập trình trong Java?


Làm cách nào chúng ta có thể ẩn ngăn bên trái / bên phải của JSplitPane theo lập trình trong Java?