Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách ẩn pane trái/phải của JSplitPane lập trình trong Java

JSplitPane là một lớp con của JComponent cho phép sắp xếp hai thành phần cạnh nhau ngang hoặc dọc trong một pane. Khu vực hiển thị của cả hai thành phần có thể điều chỉnh lúc runtime bởi người dùng. Các phương thức quan trọng của JSplitPane bao gồm remove(), removeAll(), resetToPreferredSizes() và setDividerLocation(). JSplitPane tạo ra giao diện PropertyChangeListener. Chúng ta có thể ẩn một trong các pane (trái hoặc phải) lập trình bằng cách click vào nút trái hoặc nút phải và tạo action listener 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);
        // Code ẩn pane trái hoặc phải
        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();
    }
}

Kết quả

Cách ẩn pane trái/phải của JSplitPane lập trình trong Java

Cách ẩn pane trái/phải của JSplitPane lập trình trong Java

Cách ẩn pane trái/phải của JSplitPane lập trình trong Java