使用 JSplitPane.HORIZONTAL_SPLIT
可让分隔窗格中的两个 Component
从左到右排列,或者使用
JSplitPane.VERTICAL_SPLIT
使其从上到下排列。改变 Component
大小的首选方式是调用
setDividerLocation
,其中 location
是新的 x 或 y 位置,具体取决于
的方向。
JSplitPane
要将 Component
调整到其首选大小,可调用 resetToPreferredSizes
。
1.常见构造方法
JSplitPane()
: 创建一个配置为将其子组件水平排列、无连续布局、为组件使用两个按钮的新
JSplitPane
。
JSplitPane(int newOrientation)
:创建一个配置为指定方向且无连续布局的新
JSplitPane
。
JSplitPane(int newOrientation, boolean newContinuousLayout)
:创建一个具有指定方向和重绘方式的新
JSplitPane
。
2.常用方法
setDividerLocation(double proportionalLocation)
:设置分隔条的位置为
JSplitPane
大小的一个百分比。
setDividerLocation(int location)
:设置分隔条的位置。
setContinuousLayout(boolean newContinuousLayout)
:设置
continuousLayout
属性的值,在用户干预期要使子组件连续地重新显示和布局子组件,此值必须为 true
。
setDividerSize(int newSize)
:设置分隔条的大小。
getDividerLocation()
:返回最后传递给
setDividerLocation
的值。
getDividerSize()
:返回分隔条的大小。
setOneTouchExpandable(boolean newValue)
:设置
oneTouchExpandable
属性的值,要使 JSplitPane
在分隔条上提供一个 UI 小部件来快速展开/折叠分隔条,此属性必须为
true
。
3.实例
import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSplitPane; public class JSplitPaneDemo extends JFrame { private static final long serialVersionUID = -3418853823231348095L; public JSplitPaneDemo() { setTitle("分割面板"); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JSplitPane hSplitPane = new JSplitPane(); hSplitPane.setDividerLocation(40); getContentPane().add(hSplitPane, BorderLayout.CENTER); hSplitPane.setLeftComponent(new JLabel(" 1")); JSplitPane vSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); vSplitPane.setLeftComponent(new JLabel(" 2")); vSplitPane.setRightComponent(new JLabel(" 3")); vSplitPane.setDividerLocation(30); vSplitPane.setDividerSize(8); vSplitPane.setOneTouchExpandable(true); vSplitPane.setContinuousLayout(true); hSplitPane.setRightComponent(vSplitPane); } public static void main(String[] args) { // TODO Auto-generated method stub JSplitPaneDemo instance = new JSplitPaneDemo(); instance.setVisible(true); } }
4.结果