目的是为了实现这样一种可拖动性可以自由分隔面板的功能
JSplitPane类中常用的方法进行讲解:
1.setDividerLocation(int location)//设置分隔隔条的绝对位置,即分隔条左侧(水平分割)的宽度或上方(垂直分隔)的高度
2.setDividerSize(int new size)//设置分隔条的宽度,默认为5像素
3.setLeftComponent(Component comp)//将组件设置到分隔条的左侧(水平分隔)或者上方(垂直分隔)
4.setLeftComponent(Component comp)//将组件设置到分隔条的右侧(水平分隔)或者下方(垂直分隔)
5.(重点)setOneTouchExpandable(boolean)设置UI小组件,true表示提供
首先我们先来写一个水平方向的分割面板:
原代码附上:
public class JSPlitPaneDemon extends JFrame {
//先使这个类继承JFrame做好一个Frame的窗口先;
public static void main(String args[]){
JSPlitPaneDemon jsPlitPaneDemon=new JSPlitPaneDemon();
jsPlitPaneDemon.setVisible(true);
}
public JSPlitPaneDemon(){
super();
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置默认的关闭操作,参数”在关闭动作时退出,
// 如果在代码里没加这个方法,那么在点击框架的”叉叉“退出框架后,程序仍然没有退出,只是JFrame被关闭了
Container container=getContentPane();
JSplitPane jSplitPane=new JSplitPane();//创建一个(默认)水平方向的分隔面板;
getContentPane().add(jSplitPane,BorderLayout.CENTER);//将该分隔面板添加到指定区域;
jSplitPane.setLeftComponent(new Label("左边"));
}
}
这时候我们可以看到面板中实现了水平分割了,如图:
接下来我们再来实现垂直分隔:
public class JSPlitPaneDemonextends JFrame {
//先使这个类继承JFrame做好一个Frame的窗口先;
public static void main(String args[]){
JSPlitPaneDemon jsPlitPaneDemon=new JSPlitPaneDemon();
jsPlitPaneDemon.setVisible(true);
}
public JSPlitPaneDemon(){
super();
setTitle("这是分隔面板");
setBounds(100,100,500,375);
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置默认的关闭操作,参数”在关闭动作时退出,
// 如果在代码里没加这个方法,那么在点击框架的”叉叉“退出框架后,程序仍然没有退出,只是JFrame被关闭了
Container container=getContentPane();
JSplitPane jSplitPane=new JSplitPane();//创建一个(默认)水平方向的分隔面板;
getContentPane().add(jSplitPane,BorderLayout.CENTER);//将该分隔面板添加到指定区域;
jSplitPane.setLeftComponent(new JLabel("左边"));
// ---------------------------------------------------------------------------------------------------
// 以下是实现垂直分隔面板
JSplitPane jSplitPane1=new JSplitPane(JSplitPane.VERTICAL_SPLIT);//创建一个垂直面板;
jSplitPane1.setLeftComponent(new JLabel("上面"));
jSplitPane1.setRightComponent(new JLabel("下面"));
jSplitPane1.setDividerSize(20);//设置分隔条的像素为20
jSplitPane.setRightComponent(jSplitPane1);
/////////重点来了,为分隔面板提供一个UI小部件,设置为true
jSplitPane1.setOneTouchExpandable(true);
jSplitPane1.setDividerLocation(100);//设置分隔条上方的高度为30像素其实其为一开始给它上方初始化一个大小区域而已
//----------------------------------------------------------------------------------------------------------
}
}
最后效果图: