JTabbedPane中双击关闭Tab如何实现问题?

rmn190 2007-04-16 03:33:28
关于JTabbedPane的一些疑问:
1,既然可以在JTabbedPane中加入JTextArea,那有的程序出于什么考虑又先把JTextArea加到JInterFrame,再把JIntelFrame加到一JDesktopPane中,而最终把JDesktopPane才加到JTabbedPane中呢????这样的多此一举有什么好处呢???
2,当在JTabbedPane中加了N(N>=2)个Tab时,如何实现双击某一Tab就把它关掉呢??又如何实现在Tab行中双击即可新建一Tab呢????
3,在Eclipse中,每一个Tab上有一个小叉(用来关闭Tab的),鼠标在Tab上时才显示出来,这个功能又如何实现?


**********************************
我知道这些问题好像JTabbedPane本身好像没有自带,是得通过事件响应来完成吧??
...全文
1079 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bradwoo8621 2007-04-18
  • 打赏
  • 举报
回复
带关闭按钮的JTabbedPane
http://community.csdn.net/Expert/TopicView3.asp?id=4657920
不是我做的, 不过这个写法在java.sun.com的forums上早就有了, JBuilder就是这么做的.

至于鼠标上去才有, 结合swoky的做法应该可以看出来.
swoky 2007-04-16
  • 打赏
  • 举报
回复
public class tabbedPaneTest implements MouseListener{

JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP,JTabbedPane.SCROLL_TAB_LAYOUT );

tabbedPane.addMouseListener(this);

//双击标签关闭
public void mouseClicked(MouseEvent e){

if (tabbedPane.indexAtLocation(e.getX(), e.getY()) == -1){
//这里写新建的代码
tabbedPane.add(……);
.......

}else if(e.getClickCount()==2){
//这里写关闭的代码
tabbedPane.remove(....);
.......
}
}

public void mousePressed(MouseEvent e){}
public void mouseEntered(MouseEvent e){
//这里可以处理那个关闭按钮的显示
}
public void mouseExited(MouseEvent e){
//关闭按钮消失
}

//标签上右键
public void mouseReleased(MouseEvent e){
if(!SwingUtilities.isRightMouseButton(e)){
//不是右键就退出
return;
}
if (tabbedPane.indexAtLocation(e.getX(), e.getY()) != -1)
{
//定义一个右键菜单tabrightmenu
tabrightmenu.show(e.getComponent(),e.getX(),e.getY());
}
}

}
至于把JTextArea加到JInterFrame我想别人是方便把JTextArea从JTabbedPane 中脱离出来
这样就可以在单独的窗口中看这个JTextArea了……(纯个人看法)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧