关于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.   

    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了……(纯个人看法)
      

  2.   

    带关闭按钮的JTabbedPane
    http://community.csdn.net/Expert/TopicView3.asp?id=4657920
    不是我做的, 不过这个写法在java.sun.com的forums上早就有了, JBuilder就是这么做的.至于鼠标上去才有, 结合swoky的做法应该可以看出来.