JSplitPane控件是Swing中的分块显示控件,它最多能显示,也只能显示2个控件。用户可以调整和操控这两个控件。
JSplitPane中的控件可以通过JSplitPane.HORIZONTAL_SPLIT属性设置从左到右;或JSplitPane.VERTICAL_SPLIT属性设置从上到下布置。
JSplitPane() JSplitPane(int newOrientation) JSplitPane(int newOrientation, boolean newContinuousLayout) JSplitPane(int newOrientation, boolean newContinuousLayout, Component newLeftComponent, Component newRightComponent) JSplitPane(int newOrientation, Component newLeftComponent, Component newRightComponent)
以上5个构造函数的中参数:
int newOrientation:设置水平显示还是垂直显示 JSplitPane.VERTICAL_SPLIT JSplitPane.HORIZONTAL_SPLIT boolean newContinuousLayout:设置在调整隔行大小时重绘还是调整隔行大小完毕时重绘 true 调整时重绘 false 调整完毕后重绘 newLeftComponent newRightComponent:要显示的控件
以上参数可以在构造时设置,也可在创建实例后再设置。
setContinuousLayout(boolean newContinuousLayout) setOrientation(int orientation) add(Component comp, int index)
具体事例
public class JSplitPane1 { public JSplitPane1() { JFrame f = new JFrame("JSplitPaneDemo"); Container contentPane = f.getContentPane(); JLabel label1 = new JLabel("Label 1",JLabel.CENTER); label1.setBackground(Color.green); label1.setOpaque(true); JLabel label2 = new JLabel("Label 2",JLabel.CENTER); label2.setBackground(Color.pink); label2.setOpaque(true); JLabel label3 = new JLabel("Label 3",JLabel.CENTER); label3.setBackground(Color.yellow); label3.setOpaque(true); //添加上滑动控件,并将2个label放置控件中 JSplitPane splitPane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, label1, label2); splitPane1.setDividerLocation(0.3); splitPane1.setOneTouchExpandable(true); splitPane1.setDividerSize(10); //添加主滑动控件,上面是滑动控件,下面是label /*JSplitPane splitPane2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, splitPane1, label3);*/ JSplitPane splitPane2 = new JSplitPane(); splitPane2.setContinuousLayout(true); splitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT); splitPane2.add(splitPane1, JSplitPane.BOTTOM); splitPane2.add(label3, JSplitPane.TOP); splitPane2.setDividerLocation(35); splitPane2.setOneTouchExpandable(false); splitPane2.setDividerSize(5); contentPane.add(splitPane2); f.setSize(250,200); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] arg) { new JSplitPane1(); } }