Java分割面板和选项卡面板的应用
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分割面板和选项卡面板的应用的更多相关文章
- jQuery EasyUI 选项卡面板tabs使用实例精讲
1. 对选项卡面板区域 div 设置 class=”easyui-tabs” 2. 对选项卡面板区域添加多个 div,每个 div 就是一个选项卡(每个面板一定设置 title) 3. 设置面板 fi ...
- 高级组件——选项卡面板JTabbedPane
选项卡面板:JTabbedPane(标签位置,布局方式) 标签位置:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT,JTabbedPane.RI ...
- Ext 选项卡面板TabPanel
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JAVA GUI学习 - JTabbedPane选项卡组件学习
public class JTabbedPaneKnow extends JFrame { JTabbedPane jTabbedPane; JPanel jPanelRed; JPanel jPan ...
- 出售Illustrator脚本插件面板(包含面板源码,以及面板上所有的功能源码)
出售Illustrator脚本插件面板(包含面板源码,以及面板上所有的功能源码) 购买后可提供相应的小修改,以及教你使用往这个多列面里再加上按钮功能! 这套源码可作为工作使用,也可用为新手学习AI脚面 ...
- 关于液晶显示器的6bit面板、8bit面板及E-IPS(转)
原文:http://bbs.3dmgame.com/thread-2232447-1-1.html 1.什么是6bit面板.8bit面板 众所周知,液晶显示器 ...
- iframe和选项卡面板切换
<div class="col-sm-6"> <div class="tabs-container"> <ul class=&qu ...
- (八)easyUI之Accordion折叠面板:动态面板
二.动态面板 数据库设计 函数设计:该函数用于获取某个节点的所有子节点 CREATE FUNCTION fn_getAddress_ChildList_test(rootId INT) RETURNS ...
- Axure教程:如何使用动态面板?动态面板功能详解
写了几个Axure教程之后发现,可能教程的起点有些高了,过分的去讲效果的实现,而忽略了axure功能以及基础元件的使用,那么从这个教程开始,把这些逐渐的展开讲解. 关于Axure动态面板 动态面板是a ...
随机推荐
- [考试反思]1106csp-s模拟测试103: 渺茫
7点之前上不了博客,用gedit写的.谅解一下. 看起来不是特别惨?但是被sdfz爆踩了...而且其实并不能说“不是特别惨”吧90分算个啥啊?还凑不出个T2的AC难易度评估错误,T2是最简单的没看出来 ...
- [考试反思]0927csp-s模拟测试53:沦陷
很喜欢Yu-shi说过的一句话 在OI里,菜即是原罪 对啊. 都会.谁信呢? 没有分数,你说话算什么呢? 你就是菜,你就是不对,没有别的道理. 最没有用的,莫过于改题大神,这就是菜的借口. 但是其实这 ...
- 深入了解 Java Resource && Spring Resource
在Java中,为了从相对路径读取文件,经常会使用的方法便是: xxx.class.getResource(); xxx.class.getClassLoader().getResource(); 在S ...
- STL库学习笔记(一)——什么是STL?
小明是一个很牛逼的程序员,在国际标准化组织工作. 他现在正在设计新一代的C++标准,标准中有一个待实现的函数:findMax(),这个函数要求使用者输入任何类型的数据,他都能找到最大的一个. 于是他想 ...
- 关于css布局的一点记录
1 关于css实现水平垂直居中的一些方法: .css的定位:用margin,padding,position position:absolute; //绝对定位,一般父级元素采用relative来 ...
- 大数据之路week01--day02_2 集合方面的总结
(初稿 太晚了,明天再进行补充) 1.对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. (2)案例: 用数组存储5个学生对象,并遍历数组 ...
- 羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的<阿里巴巴 Java 开发手册>上有一段内容说:"循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作 ...
- canvas绘制工作流之绘制节点
上一篇我们介绍了canvas绘制工作流的大概步骤,接下来会有系列文章细致的介绍怎么用canvas绘制工作流:这篇文章主要介绍用canvas绘制流程节点. 绘制前我们需要先准备一张节点图片,例如::好了 ...
- PHP+Swoole并发编程的魅力
PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势.实际上在Swoole出现之后,这种串行化编程的模式早已被打破.使用Swoole完全可以轻易实现更灵活的并发编 ...
- 区块链轻松上手:原理、源码、搭建与应用pdf电子版下载
区块链轻松上手:原理.源码.搭建与应用pdf电子版下载 链接:https://pan.baidu.com/s/1rKF4U9wq612RMIChs0zv8w提取码:hquz <区块链轻松上手:原 ...