关于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本身好像没有自带,是得通过事件响应来完成吧??
1,既然可以在JTabbedPane中加入JTextArea,那有的程序出于什么考虑又先把JTextArea加到JInterFrame,再把JIntelFrame加到一JDesktopPane中,而最终把JDesktopPane才加到JTabbedPane中呢????这样的多此一举有什么好处呢???
2,当在JTabbedPane中加了N(N>=2)个Tab时,如何实现双击某一Tab就把它关掉呢??又如何实现在Tab行中双击即可新建一Tab呢????
3,在Eclipse中,每一个Tab上有一个小叉(用来关闭Tab的),鼠标在Tab上时才显示出来,这个功能又如何实现?
**********************************
我知道这些问题好像JTabbedPane本身好像没有自带,是得通过事件响应来完成吧??
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了……(纯个人看法)
http://community.csdn.net/Expert/TopicView3.asp?id=4657920
不是我做的, 不过这个写法在java.sun.com的forums上早就有了, JBuilder就是这么做的.至于鼠标上去才有, 结合swoky的做法应该可以看出来.