请教:
选项卡面板能响应鼠标事件么?怎样实现双击标签关闭选中的面板?
谢谢

解决方案 »

  1.   

    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);
    }
    }
      

  2.   

    mouseClicked()方法不行吗??为什么是mousePressed()呢?WHY?
      

  3.   

    class CommonFrame extends JFrame
    {
    JTabbedPane tabPnl;
        Container container;
        JToolBar toolBar;
        JMenuBar menuBar;
        
    public CommonFrame()
    {
    super();
    Dimension screanSize = Toolkit.getDefaultToolkit().getScreenSize();
            setSize(680,500);
            Dimension frameSize = this.getSize();
    setLocation((screanSize.width-frameSize.width)/2,
                     (screanSize.height-frameSize.height)/2);
    container = getContentPane();
    container.setLayout(new BorderLayout(5,5));
            setJMenuBar(makeMenuBar());    
            tabPnl = new JTabbedPane(JTabbedPane.TOP,JTabbedPane.SCROLL_TAB_LAYOUT);
            tabPnl.addMouseListener(new MouseAdapter(){
             public void mousePressed(MouseEvent e)
             {
             if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1)
             {
             int tabIndex = tabPnl.indexAtLocation(e.getX(),e.getY());
             if (tabIndex != -1)
             tabPnl.remove(tabIndex);
             }
             }
            });
            
            tabPnl.addTab("tab1",new JPanel());
            tabPnl.addTab("tab2",new JPanel());
            tabPnl.addTab("tab3",new JPanel());
            tabPnl.setBackground(Color.GRAY);
            container.add(makeToolBar(),BorderLayout.NORTH);
            container.add(tabPnl,BorderLayout.CENTER);

    }
    为什么我的代码不行?