1、分割面板

JSplitPane类的常用构造方法
构造方法 说明
JSplitPane() 创建一个默认的分割面板。默认情况下为在水平方向上分割,重绘方式为只在调整分隔条位置完成时重绘
JSplitPane(int neworientation) 创建一个按照指定方向分割的分割面板。入口参数newOrientation的可选静态JSplitPane(int newOrientation)常量有HORIZONTAL_SPLIT和VERTICAL_SPLIT
JSplitPane(int neworientation,boolean newContinuousLayout) 创建一个按照指定方向分割,并且按照指定方式重绘的分割面板。如果将入口参数 newContinuousLayout设为true,表示在调整分隔条位置的过程中连续重绘,设为false则表示只在调整分隔条位置完成时重绘

重绘:重新绘制组件的布局方式。如果把 newContinuousLayout设为true,拖动分隔条的时候组件也会跟着动,如果是false,拖动的仅仅是分隔条(组件不会跟着动),待分隔条定下来时,组件才跟着定下来。如果既需要水平分割又要在垂直分割,可以在其中一个分割面板的两个方向上再添加分割面板。小例子:

	// 创建一个水平方向的分割面板
JSplitPane hSplitPane = new JSplitPane();
// 分隔条左侧的宽度为40像素
hSplitPane.setDividerLocation(40);
// 添加到指定区域
getContentPane().add(hSplitPane, BorderLayout.CENTER);
// 在水平面板左侧添加一个标签组件
hSplitPane.setLeftComponent(new JLabel("左面板"));
// 创建一个垂直方向的分割面板
JSplitPane vSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
// 分隔条上方的高度为30像素
vSplitPane.setDividerLocation(30);
vSplitPane.setDividerSize(8);// 分隔条的宽度为8像素
vSplitPane.setOneTouchExpandable(true);// 提供UI小部件
// 在调整分隔条位置时面板的重绘方式为连续绘制
vSplitPane.setContinuousLayout(true);
hSplitPane.setRightComponent(vSplitPane);// 添加到水平面板的右侧
// 在垂直面板上方添加一个标签组件
vSplitPane.setLeftComponent(new JLabel("上"));
// 在垂直面板下方添加一个标签组件
vSplitPane.setRightComponent(new JLabel("下"));

2、选项卡面板

表23.3JTabbedPane类的所有构造方法
构造方法 说明
JTabbedPane() 创建一个默认的选项卡面板。默认情况下标签位于选项卡的上方,布局方式为限制布局
JTabbedPane(int tabPlacement) 创建一个指定标签显示位置的选项卡面板。入口参数tabPlacement的可选静态常量可以TOP、BOTTOM、LEFT 和RIGHT
JTabbedPane(int tabPlacement,int tabLayoutPolicy) 创建一个既指定标签显示位置又指定选项卡布局方式的选项卡面板。入口参数tabLayoutPolicy的可选静态常量可以是WRAP_TAB_LAYOUT(限制布局为默认值)和SCROLL_TAB_LAYOUT(滚动布局)

两种布局方式是限制布局和滚动布局,限制布局中的选项卡面板可以随着窗体的拖动做出合适的调整,滚动布局是窗体变小的时候会出现一个滚动条,可以点击显示被遮挡的选项卡。addTab()方法可以把所有入口参数都设置为空,即:

tabbedPane.addTab(null,null);
方法 说明
addTab(String title,Component component) 添加一个标签为title
addTab(String title,Icon icon,Component component) 添加一个标签为title、图标为icon
addTab(String title,Icon icon,Component component,String tip) 添加一个标签为title、图标为icon、提示为tip的选项卡
InsertTab(String title,Icon icon,Component component,String tip, int index) 在索引位置index处插入一个标签为title、图标为icon、提示为tip的选项卡。索引值从0开始
setTabPlacement(int tabPlacement) 设置选项卡标签的显示位置
setTabLayoutPolicy(int tabLayoutPolicy) 设置选项卡标签的布局方式
setSelectedIndex(int index) 设置指定索引位置的选项卡被选中
setEnabledAt(int index, boolean enabled) 设置指定索引位置的选项卡是否可用。设为true表示可用,设为false则表示不可用
setDisabledIconAt(int index,Icon disabledIcon) 为指定索引位置的选项卡设置不可用时显示的图标
getTabCount() 获得该选项卡面板拥有选项卡的数量
getSelectedIndex() 获得被选中选项卡的索引值
getTitleAt(int index) 获得指定索引位置的选项卡标签
addChangeListener(ChangeListener 1) 为选项卡面板添加捕获被选中选项卡发生改变的事件

小例子:

		final JTabbedPane tabbedPane = new JTabbedPane();
// 设置选项卡标签的布局方式
tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
tabbedPane.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
// 获得被选中选项卡的索引
int selectedIndex = tabbedPane.getSelectedIndex();
// 获得指定索引的选项卡标签
String title = tabbedPane.getTitleAt(selectedIndex);
System.out.println(title);
}
});
getContentPane().add(tabbedPane, BorderLayout.CENTER);
URL resource = ExampleFrame_02.class.getResource("/tab.JPG");
ImageIcon imageIcon = new ImageIcon(resource);
final JLabel tabLabelA = new JLabel();
tabbedPane.addTab("选项卡A", imageIcon, tabLabelA, "点击查看选项卡A");
final JLabel tabLabelB = new JLabel();
tabbedPane.addTab("选项卡B", imageIcon, tabLabelB, "点击查看选项卡B");
final JLabel tabLabelC = new JLabel();
tabbedPane.addTab("选项卡C", imageIcon, tabLabelC, "点击查看选项卡C");
tabbedPane.setSelectedIndex(2); // 设置索引为2的选项卡被选中
tabbedPane.setEnabledAt(0, false); // 设置索引为0的选项卡不可用

欢迎关注我的公众号:物联网技术猿

我可以帮你免费下载csdn积分资料!!

Java分割面板和选项卡面板的应用的更多相关文章

  1. jQuery EasyUI 选项卡面板tabs使用实例精讲

    1. 对选项卡面板区域 div 设置 class=”easyui-tabs” 2. 对选项卡面板区域添加多个 div,每个 div 就是一个选项卡(每个面板一定设置 title) 3. 设置面板 fi ...

  2. 高级组件——选项卡面板JTabbedPane

    选项卡面板:JTabbedPane(标签位置,布局方式) 标签位置:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT,JTabbedPane.RI ...

  3. Ext 选项卡面板TabPanel

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. JAVA GUI学习 - JTabbedPane选项卡组件学习

    public class JTabbedPaneKnow extends JFrame { JTabbedPane jTabbedPane; JPanel jPanelRed; JPanel jPan ...

  5. 出售Illustrator脚本插件面板(包含面板源码,以及面板上所有的功能源码)

    出售Illustrator脚本插件面板(包含面板源码,以及面板上所有的功能源码) 购买后可提供相应的小修改,以及教你使用往这个多列面里再加上按钮功能! 这套源码可作为工作使用,也可用为新手学习AI脚面 ...

  6. 关于液晶显示器的6bit面板、8bit面板及E-IPS(转)

    原文:http://bbs.3dmgame.com/thread-2232447-1-1.html              1.什么是6bit面板.8bit面板         众所周知,液晶显示器 ...

  7. iframe和选项卡面板切换

    <div class="col-sm-6"> <div class="tabs-container"> <ul class=&qu ...

  8. (八)easyUI之Accordion折叠面板:动态面板

    二.动态面板 数据库设计 函数设计:该函数用于获取某个节点的所有子节点 CREATE FUNCTION fn_getAddress_ChildList_test(rootId INT) RETURNS ...

  9. Axure教程:如何使用动态面板?动态面板功能详解

    写了几个Axure教程之后发现,可能教程的起点有些高了,过分的去讲效果的实现,而忽略了axure功能以及基础元件的使用,那么从这个教程开始,把这些逐渐的展开讲解. 关于Axure动态面板 动态面板是a ...

随机推荐

  1. [考试反思]1106csp-s模拟测试103: 渺茫

    7点之前上不了博客,用gedit写的.谅解一下. 看起来不是特别惨?但是被sdfz爆踩了...而且其实并不能说“不是特别惨”吧90分算个啥啊?还凑不出个T2的AC难易度评估错误,T2是最简单的没看出来 ...

  2. [考试反思]0927csp-s模拟测试53:沦陷

    很喜欢Yu-shi说过的一句话 在OI里,菜即是原罪 对啊. 都会.谁信呢? 没有分数,你说话算什么呢? 你就是菜,你就是不对,没有别的道理. 最没有用的,莫过于改题大神,这就是菜的借口. 但是其实这 ...

  3. 深入了解 Java Resource && Spring Resource

    在Java中,为了从相对路径读取文件,经常会使用的方法便是: xxx.class.getResource(); xxx.class.getClassLoader().getResource(); 在S ...

  4. STL库学习笔记(一)——什么是STL?

    小明是一个很牛逼的程序员,在国际标准化组织工作. 他现在正在设计新一代的C++标准,标准中有一个待实现的函数:findMax(),这个函数要求使用者输入任何类型的数据,他都能找到最大的一个. 于是他想 ...

  5. 关于css布局的一点记录

    1 关于css实现水平垂直居中的一些方法: .css的定位:用margin,padding,position position:absolute;   //绝对定位,一般父级元素采用relative来 ...

  6. 大数据之路week01--day02_2 集合方面的总结

    (初稿 太晚了,明天再进行补充) 1.对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. (2)案例: 用数组存储5个学生对象,并遍历数组 ...

  7. 羞,Java 字符串拼接竟然有这么多姿势

    二哥,我今年大二,看你分享的<阿里巴巴 Java 开发手册>上有一段内容说:"循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作 ...

  8. canvas绘制工作流之绘制节点

    上一篇我们介绍了canvas绘制工作流的大概步骤,接下来会有系列文章细致的介绍怎么用canvas绘制工作流:这篇文章主要介绍用canvas绘制流程节点. 绘制前我们需要先准备一张节点图片,例如::好了 ...

  9. PHP+Swoole并发编程的魅力

    PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势.实际上在Swoole出现之后,这种串行化编程的模式早已被打破.使用Swoole完全可以轻易实现更灵活的并发编 ...

  10. 区块链轻松上手:原理、源码、搭建与应用pdf电子版下载

    区块链轻松上手:原理.源码.搭建与应用pdf电子版下载 链接:https://pan.baidu.com/s/1rKF4U9wq612RMIChs0zv8w提取码:hquz <区块链轻松上手:原 ...