package demo.swing;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
public class TabComponentsDemo extends JFrame{
private JTabbedPane pane = new JTabbedPane();
private JMenuItem scrollTabItem ;
private JMenuItem componentTabItem;
private final int numTab = 5;
public TabComponentsDemo(String title) {
//设置frame标题名
super(title);
//设置关闭方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建菜单栏
initMenu();
//将tabpane添加到frame中
add(pane);
}
//初始化tabpanel相关配置,并且用于resize的调用
public void runTest() {
//设置有关闭按键的标签
componentTabItem.setSelected(true);
//设置标签
for(int i = 0 ; i < numTab ; i++)
{
//标签名
String name = "tab "+i;
//创建标签
pane.add(name,createContent(name));
//初始化标签上的文字和Button
initTabComponent(i);
}
//设置frame的大小
setSize(new Dimension(500,500));
//将frame放到屏幕的正中央
setLocationRelativeTo(null);
//显示frame
setVisible(true);
}
//创建标签内容部分
private Component createContent(String name) {
//创建一个panel,并设置布局为一个分块
JPanel panel = new JPanel(new GridLayout(1,1));
//创建一个label
JLabel label = new JLabel(name);
//设置label的文本格式
label.setHorizontalAlignment(JLabel.CENTER);
//将label放入panel中
panel.add(label);
return panel;
}
//初始化带有关闭按钮的标签头部
private void initTabComponent(int i) {
//用这个函数可以初始化标签的头部
pane.setTabComponentAt(i, new ButtonTabComponent(pane));
}
//创建菜单栏
private void initMenu() {
//创建一个菜单条
JMenuBar mb = new JMenuBar();
//创建重叠tab选项
scrollTabItem = new JCheckBoxMenuItem("重叠tab");
//设置快捷键
scrollTabItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
//设置监听事件
scrollTabItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if(pane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT)
pane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
else
pane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
}
});
//设置可关闭的标签的菜单
componentTabItem = new JCheckBoxMenuItem("设置可关闭的tab");
componentTabItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
componentTabItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for(int i = 0 ; i < numTab ; i++)
{
if(componentTabItem.isSelected())
initTabComponent(i);
else
pane.setTabComponentAt(i, null);
}
}
});
//设置重置标签
JMenuItem reSetItem = new JMenuItem("重置");
reSetItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
reSetItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
runTest();
}
});
//创建菜单
JMenu menu = new JMenu("选项");
//添加菜单项
menu.add(componentTabItem);
menu.add(scrollTabItem);
menu.add(reSetItem);
//添加菜单
mb.add(menu);
//添加菜单条(注意一个frame只能有一个菜单条,所以用set)
setJMenuBar(mb);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TabComponentsDemo("可关闭的tab测试").runTest();
}
});
}
}
- 大小: 16.7 KB
分享到:
相关推荐
JS可关闭tab TAB JS可关闭tab 实用
非常好用的一款js集成的iframe,tab标签的使用,如果对各位有用的话,请回来给个好评,谢谢!
java本身自带的tab页无法实现关闭功能(基于Netbeans-swing组件),这段java程序实现了这个功能,代码还不是很完善,界面很友好。
bootstrap风格的动态添加tab页 tab页上有右键事件:关闭其他,全部关闭 另可自定义json配置右键菜单
bootstrap-closable-tab.js扩展关闭全部和关闭其他,tab扩展增加、关闭
可打开关闭的tab选项卡效果 一般我们遇到的都是多个选项卡,变变位置啥的,核心内容没变,今天给大家推荐的这款,是类似网易邮箱里的tab选项卡效果,可以打开,也可以关闭
jQuery Tab 可关闭的网页选项卡特效,网页上的标签效果,每个TAB标签都可以关闭,就像现在主流的163邮箱、QQ邮箱中的效果,模拟出了PC浏览器的效果,选项卡可以无限制增多,超出宽度会出现滚动条,本演示页面中包括...
自适应可关闭的Tab, 下载学习一下,非常不错的资源哦,来看看吧
一个简洁的支持展开关闭的tab标签代码可做后台可关闭TAB标签页
WPF 自带的TabControl 没有关闭按钮,需要自己定义增加一个可关闭的按钮,并且tab宽度自适应
NULL 博文链接:https://01jiangwei01.iteye.com/blog/738094
JQuery做的Tabs选项卡,而且可关闭的选项卡,十分好用哦。
主要为大家详细介绍了bootstrap-closable-tab可实现关闭的tab标签页插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
•WordTab和ExcelTab提供了标签锁定功能(不支持PPtTab),锁定后的文档不能保存和关闭。 •独立OfficeTab设置中心,更加方便的设置OfficeTab的各组件功能 •漂亮的的皮肤外观样式,有11种可以选择 •可以设置为...
NULL 博文链接:https://chenyu-hz.iteye.com/blog/1493272
安装 Sexy Undo Close Tab 之后,会在 CHROME 右上角工具栏生成一个小图标,点击该小图标就可以看到最近关闭的标签页,默认收录最近20个关闭的标签页,用户也可以通过扩展的设置页面改变这个数值。 值得一提的是,...
仿Chrome浏览器风格可单独关闭的网页TAB选项卡插件,可以依次打开多个TAB,每个TAB上都有关闭按钮,可以单独被关闭,美化的也很漂亮,功能更人性化的网页选项卡插件,自带的示例运行于HTML5环境,各个功能都可充分...
你是不是还在为TabHeader 添加关闭标签而发愁呢?看下此例就明白了!并且还可以手动编辑TabHeader控件上显示的名字!赶紧试一下!