我在编一个模仿UltraEdit的编辑软件,碰到两个关于JTabbedPanel的问题:
       1、当我新增加一个Tab时,如何让他成为当前编辑状态(就像UltraEdit,我原先已经打开了几个文件,当我再打开一个文件时,这个文件所在的Tab就显示出来,而其他文件的Tab被覆盖);
       2、如何设置监听事件,实现当我双击某个Tab时,他就关闭。
       望不吝指教,谢谢!

解决方案 »

  1.   

    removeTabAt(int index) 
              移除 index 位置的选项卡。
    setSelectedComponent(Component c) 
              设置此选项卡窗格的已选组件。这两个函数应该有用吧
      

  2.   

    自己解决了,呵呵!
    import java.awt.BorderLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;public class T {
    public static void main(String[] args) {
    final JTabbedPane tabbedPane = new JTabbedPane();
    tabbedPane.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
    if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
    int tabIndex = tabbedPane.indexAtLocation(e.getX(), e.getY());
    if (tabIndex != -1) {
    tabbedPane.remove(tabIndex);
    }
    }
    }
    });
    tabbedPane.addTab("Tab1", new JPanel());
    tabbedPane.addTab("Tab2", new JPanel());
    tabbedPane.addTab("Tab3", new JPanel());
    tabbedPane.addTab("Tab4", new JPanel());
    tabbedPane.addTab("Tab5", new JPanel());JFrame f = new JFrame();
    f.getContentPane().add(tabbedPane, BorderLayout.CENTER);
    f.setSize(300, 200);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }
      

  3.   

    双击事件的话就用MouseEvent里面的
    MouseCliked事件里
    用getClickCount方法
    getClickCount == 2 就表示双击了
    不过这个是不分左右中键的!!!就是说,你左键双击和你右键双击效果一样