* @author zhangtao
package zht.tab.demo;
import java.awt.BorderLayout;
public class TabDemo extends JPanel {
public static void main(String[] args) {
ZHTUtils.showComponentInFrame(new TabDemo());
}
public TabDemo() {
initGUI();
}
private ZHTTabbedPane pane = new ZHTChromeTabbedPane();
private TabConfigDialog configDialog = new TabConfigDialog(pane);
private void initGUI() {
pane.setTabWidth(180);
initTabPane();
initTabPopupMenu();
this.setLayout(new BorderLayout());
this.add(pane, BorderLayout.CENTER);
}
private void initTabPopupMenu() {
pane.setPopMenuGenerator(new TabPopupMenuGenerator() {
public JPopupMenu generate(ZHTTabbedPane zhtTabbedPane, MouseEvent mouseEvent) {
JPopupMenu menu = new JPopupMenu();
final Tab currentTab = pane.getMouseOverTab();
final List tabList = new ArrayList(pane.getTabList());
final int index = tabList.indexOf(currentTab);
final int size = tabList.size();
JMenuItem item;
if (currentTab != null) {
item = createMenuItem("Close Tab", new ActionListener() {
public void actionPerformed(ActionEvent e) {
pane.closeTab(currentTab);
}
});
menu.add(item);
item = createMenuItem("Close other tabs", new ActionListener() {
public void actionPerformed(ActionEvent e) {
List removeList = new ArrayList();
for (int i = 0; i < size; i++) {
Tab tab = (Tab) tabList.get(i);
if (tab != currentTab) {
removeList.add(tab);
}
}
int rsize = removeList.size();
for (int i = 0; i < rsize; i++) {
Tab tab = (Tab) removeList.get(i);
pane.closeTab(tab);
}
}
});
if (size == 1) {
item.setEnabled(false);
}
menu.add(item);
item = createMenuItem("Close tabs to the left", new ActionListener() {
public void actionPerformed(ActionEvent e) {
List removeList = new ArrayList();
for (int i = index - 1; i >= 0; i--) {
Tab tab = (Tab) tabList.get(i);
removeList.add(tab);
}
int rsize = removeList.size();
for (int i = 0; i < rsize; i++) {
Tab tab = (Tab) removeList.get(i);
pane.closeTab(tab);
}
}
});
if (index == 0) {
item.setEnabled(false);
}
menu.add(item);
item = createMenuItem("Close tabs to the right", new ActionListener() {
public void actionPerformed(ActionEvent e) {
for (int i = size - 1; i > index; i--) {
pane.closeTab(i);
}
}
});
if (index == tabList.size() - 1) {
item.setEnabled(false);
}
menu.add(item);
menu.addSeparator();
}
item = createMenuItem("Config", new ActionListener() {
public void actionPerformed(ActionEvent e) {
configDialog.setVisible(true);
}
});
menu.add(item);
menu.addSeparator();
item = createMenuItem("About", new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
menu.add(item);
return menu;
}
});
}
private JMenuItem createMenuItem(String label, ActionListener listener) {
final JMenuItem item = new JMenuItem(label);
if (listener != null) {
item.addActionListener(listener);
}
item.setOpaque(false);
return item;
}
private void initTabPane() {
ImagePanel panel = new ImagePanel(new ImageIcon(this.getClass().getResource("google.png")));
Icon icon = new ImageIcon(this.getClass().getResource("1.png"));
Tab tab = new Tab(panel, false, icon, "GoogleZH");
pane.addTab(tab, true);
panel = new ImagePanel(new ImageIcon(this.getClass().getResource("googleen.png")));
icon = new ImageIcon(this.getClass().getResource("2.png"));
tab = new Tab(panel, true, icon, "GoogleEN");
pane.addTab(tab);
panel = new ImagePanel(new ImageIcon(this.getClass().getResource("googlenews.png")));
icon = new ImageIcon(this.getClass().getResource("3.png"));
tab = new Tab(panel, true, icon, "GoogleNews");
pane.addTab(tab);
panel = new ImagePanel(new ImageIcon(this.getClass().getResource("micro.png")));
icon = new ImageIcon(this.getClass().getResource("1.png"));
tab = new Tab(panel, true, icon, "Micro");
pane.addTab(tab);
panel = new ImagePanel(new ImageIcon(this.getClass().getResource("msn.png")));
icon = new ImageIcon(this.getClass().getResource("2.png"));
tab = new Tab(panel, true, icon, "MSN");
pane.addTab(tab);
pane.setBackgroundImage(new ImageIcon(this.getClass().getResource("back.jpg")).getImage());
}
}
class ImagePanel extends JComponent {
ImageIcon image;
public ImagePanel(ImageIcon image) {
this.image = image;
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image.getImage(), 0, 0, this);
}
}
- 大小: 54.4 KB
分享到:
相关推荐
Java 实现的Tab选项是一种常见的用户界面(UI)设计元素,用于在有限的空间内组织和切换多个视图或内容面板。在Java编程中,我们可以利用Java Swing或JavaFX库来创建这样的功能。以下是对这个主题的详细阐述: 一、...
"Winform 高仿 Chrome 的 Tab页控件"正是这样一个实现,它旨在模拟Chrome浏览器的标签页行为,包括新增、删除、移动以及自适应宽度等功能,从而让桌面应用也能拥有类似浏览器的交互体验。 首先,我们要理解...
Chrome插件IETAB
我们可以监听`chrome.tabs`事件,如`onUpdated`和`onRemoved`,以便在用户切换或关闭标签时更新页面信息。同时,可以设置快捷键或浏览器动作(browser action),当用户点击插件图标时触发页面切换功能。 在content...
仿Chrome浏览器风格可单独关闭的网页TAB选项卡插件,可以依次打开多个TAB,每个TAB上都有关闭按钮,可以单独被关闭,美化的也很漂亮,功能更人性化的网页选项卡插件,自带的示例运行于HTML5环境,各个功能都可充分...
标题中的"IE_Tab_for_Chrome-10.5.10.1"表明这是一个针对Google Chrome浏览器的扩展程序,版本号为10.5.10.1。这个扩展的主要功能是将Internet Explorer(IE)浏览器的功能集成到Chrome中,让用户在Chrome环境下也能...
ie tab for chrome
标题“IE Tab Chrome 插件,切换IE内核”揭示了本文将要讨论的是一个名为“IE Tab”的Chrome浏览器插件,其主要功能是允许用户在Chrome浏览器中以Internet Explorer(IE)内核模式浏览网页。这对于那些仍然需要使用...
IE Tab 这款插件对于Chrome的...用户以后访问某些只支持 IE 登录的网站时可以在Chrome中使用 IE Tab 打开,Chrome用户便可充分享受Chrome带来的快速浏览体验,不妨试试吧。 有详细安装步骤,2018年02月10日亲测可用。
【IE Tab CRX for Chrome】是一款专为谷歌浏览器(Chrome)设计的扩展程序,它允许用户在Chrome浏览器中以Internet Explorer(IE)内核来渲染网页。这在某些情况下非常有用,比如当某些网站只能在IE浏览器上正常运行...
js 实现 Enter键实现Tab键功能! 值得下载看看!资源免费,大家分享!!
可在Chrome内使用多标签页式的IE,同时比其它IE扩展拥有更多强大的实用功能! IE Tab Multi 的表现与原版IE是最相近的。 你可以不用再另外打开IE访问只能在IE中访问的网站并运行ActiveX控件。 这个扩展只支持Windows...
java web tab
这里我们将深入探讨几种常见的实现方式,以及如何利用JSP(JavaServer Pages)和插件来构建Tab页。 1. HTML/CSS/JavaScript基础实现: 使用纯HTML和CSS,你可以创建一个简单的Tab结构,通过CSS控制隐藏和显示内容...
IE TAB for chrome 插件
IE Tab 这款插件对于Chrome的爱好者来说应该都不会感到陌生了。...用户以后访问某些只支持 IE 登录的网站时可以在Chrome中使用 IE Tab 打开,Chrome用户便可充分享受Chrome带来的快速浏览体验,不妨试试吧。
Google Chrome插件: Dream After New Tab . 为chrome添加新标签页新样式, 并可以替代默认的chrome://newtab 离线插件使用方法: 1. 地址栏键入chrome://extensions/ 或者 自定义及控制按钮(右上角) -> 更多工具 -> ...
chrome插件ie tab 解决chrome浏览器不能访问工行等网站的插件
例如,它如何添加事件监听器,如何构建DOM元素,以及如何在Tab关闭时清理相关资源。 在`bootstrap-closable-tab-master`这个压缩包中,你可能会找到以下文件: - `js` 文件夹:包含实现这个功能的JavaScript代码,...