如何在 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();
}
}輸出
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP