分隔面板
JSplitPane,分隔面板,用于分隔两个(只能两个)组件,两个组件通过水平/垂直分隔条分别 左右 或 上下 显示,并且可以拖动分隔条调整两个组件显示区域的大小。
class JSplitPaneUse{
public JSplitPaneUse() {
JFrame jFrame = new JFrame("分隔面板窗口");
/**
* 全参构造参数说明
* orientation: 分隔的方向(默认水平),HORIZONTAL_SPLIT:水平左右分隔;VERTICAL_SPLIT:垂直上下分隔
* continuousLayout: 拖动分隔条时,是否连续重绘组件,如果为flase,则拖动分隔条停止后才重绘组件。
* leftComponent: 左边/上面 显示的组件
* rightComponent: 右边/下面 显示的组件
* 常用方法
* setOrientation(int orientation): 设置分隔的方向,水平(左右) 或 垂直(上下) 分隔
* setLeftComponent(Component comp):设置 左边/上面 显示的组件
* setRightComponent(Component comp):设置 左边/下面 显示的组件
* setContinuousLayout(boolean continuousLayout): 设置 拖动分隔条 时是否 连续重绘 组件
* setOneTouchExpandable(boolean newValue):分隔条上是否显示快速 折叠/展开 两边组件的小按钮
* setDividerSize(int newSize):设置分隔条的大小(宽度)
* setDividerLocation(int location):设置分隔条的位置,相对于 左边/顶部 的像素长度
*/
JSplitPane jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, new JButton("左边按钮"), new JButton("右边按钮"));
jSplitPane.setDividerLocation(200);
jFrame.setContentPane(jSplitPane);
// 省略公共代码
}
}
选项卡面板
JTabbedPane,选项卡面板。它允许用户通过点击给定标题或图标的选项卡,在一组组件之间进行切换显示。
class JTabbedPaneUse {
public JTabbedPaneUse() {
JFrame jFrame = new JFrame("选项卡面板窗口");
/**
* 全参构造参数说明:
* tabPlacement: 选项卡标题的位置, 值为 JTabbedPane.TOP/BOTTOM/LEFT/RIGHT, 默认为 TOP
* tabLayoutPolicy: 选项卡位置不能放入所有的选项卡时,放置选项卡的策略,值JTabbedPane.WRAP_TAB_LAYOUT/SCROLL_TAB_LAYOUT
* 常用方法
* addTab(String 标题, Icon 图标, Component 内容组件, String 提示文本):添加选择项卡
* insertTab(String title, Icon icon, Component component, String tip, int index):在指定位置插入选项卡
* remove(Component component):移除指定内容控件的选项卡
* remove(int index):移除指定位置的选项
* setSelectedIndex(int index):设置当前选中的选项卡
* getSelectedIndex():获取当前选中的选项卡索引
* getSelectedComponent():获取当前选中的选项卡对应的内容组件
* setTitleAt(int index, String title):设置 index 位置的选项卡的标题
* setIconAt(int index, Icon icon):设置 index 位置的选项卡的图标
* setEnabledAt(int index, boolean enabled):设置 index 位置的选项卡是否可用
* setComponentAt(int index, Component component):将 index 位置的内容组件设置为 component
*/
// 初始化一个选项面板,默认选项卡在顶部,放不下了换行
JTabbedPane jTabbedPane = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT);
// 创建选项卡
jTabbedPane.addTab("选项卡1", new JButton("测试按钮"));
jTabbedPane.addTab("选项卡2", new JButton("测试按钮"));
jFrame.setContentPane(jTabbedPane);
// 省略公共代码
}
}
3、布局
3.1、流式布局
FlowLayout,流式布局管理器,按水平方向依次排列放置组件,排满一行,换下一行继续排列。排列方向(左到右 或 右到左)取决于容器的componentOrientation属性(该属性属于Component),它可能的值如下:
- ComponentOrientation.LEFT_TO_RIGHT(默认)