分割面板
分割面板由 JSplitPane 类实现,用来将其所在的区域分割成两部分,可根据情况决定是水平方向分割还是垂直方向分割,分割的两部分之间会有一个分隔条,通过调整分隔条的位置,可以自定义两部分的相对大小。
JSplitPane 类的常用构造方法。
1,JSplitPane():创建一个默认的分割面板。默认水平方向分割。
2,JSplitPane(int newOrientation):创建一个指定分割方向的分割面板,newOrientation 可选择的静态常量有HORIZONTAL_SPLIT(水平方向分割),VERTICAL_SPLIT(垂直方向分割)。
3,JSplitPane(int newOrientation, boolena newContinuousLayout):创建一个指定分割方向的分割面板,并且按照指定方式重绘分割面板。将 newContinuousLayout 设置成 true 表示在调整分隔条位置的过程中连续重绘,设置为 false 则表示只在调整分隔条位置完成时重绘。
JSplitPane 类中的常用构造方法。
方法 | 说明 |
---|---|
setOrientation(int orientation) | 设置分割面板的分割方向 |
setDividerLocation(int location) | 设置分隔条的绝对位置,即分隔条左侧的宽度或上方的高度 |
setDividerLocation(double proportionalLocation) | 设置分隔条的相对位置,即分隔条左侧或上方的大小与分割面板大小的百分比 |
setDividerSize(int newSize) | 设置分隔条的宽度,默认为5像素 |
setLeftComponent(Component comp) | 将组件添加到分隔条的左侧或上方 |
setTopComponent(Component comp) | 将组件添加到分隔条上方或左侧 |
setRightComponent(Component comp) | 将组件设置到分隔条的右侧或下方 |
setBottomComponent(Component comp) | 将组件设置到分隔条的下方或右侧 |
setOneTouchExpandable(boolean newValue) | 设置分割面板是否提供UI小部件,true为提供,false为不提供,默认不提供 |
setContinuousLayout(boolean newContinuousLayout) | 设置调整分隔条位置时的重绘方式,设为rue 表示在调整分隔条位置的过程中连续重绘,设为 false 则表示只在调整分隔条位置完成时重绘。 |
创建一个分割面板,代码如下:
package study.czm;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSplitPane;
public class Study {
public static void main(String[] args) {
JFrame jf = new JFrame();
jf.setTitle("表格组件");
jf.setSize(500, 400);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
Container c = jf.getContentPane();
JSplitPane hSplitPane = new JSplitPane();// 创建一个水平方向的分割面板
hSplitPane.setLeftComponent(new JLabel("左边"));// 在面板左侧添加一个组件
JSplitPane vSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);// 创建一个垂直方向的分割面板
vSplitPane.setOneTouchExpandable(true);// 提供UI小部件
hSplitPane.setRightComponent(vSplitPane);// 将垂直的分割面板添加到水平分割面板的右侧
vSplitPane.setTopComponent(new JLabel("上边"));// 在垂直面板上方添加组件
vSplitPane.setBottomComponent(new JLabel("下边"));// 在垂直面板上方添加组件
c.add(hSplitPane);
jf.setVisible(true);
}
}
运行效果截图: