@@ -15,6 +15,7 @@ import javax.swing.JComponent
1515import javax.swing.JMenu
1616import javax.swing.JMenuItem
1717import javax.swing.JPopupMenu
18+ import javax.swing.SwingUtilities
1819import javax.swing.ToolTipManager
1920import javax.swing.event.ChangeEvent
2021import java.awt.BorderLayout
@@ -31,7 +32,6 @@ import javax.swing.ImageIcon
3132import javax.swing.JLabel
3233import javax.swing.JPanel
3334import javax.swing.JTabbedPane
34- import java.awt.event.MouseAdapter
3535import java.awt.event.MouseEvent
3636import java.awt.event.MouseListener
3737
@@ -70,7 +70,7 @@ class TabbedPanel extends JPanel implements PreferencesChangeListener {
7070 }
7171 }
7272 ToolTipManager . sharedInstance(). registerComponent(tabPanel)
73- tabPanel. addMouseListener(new MouseAdapter () {
73+ tabPanel. addMouseListener(new MouseListener () {
7474 void mousePressed (MouseEvent e ) { showPopupTabMenu(e) }
7575 void mouseReleased (MouseEvent e ) { showPopupTabMenu(e) }
7676 void showPopupTabMenu (MouseEvent e ) {
@@ -81,6 +81,14 @@ class TabbedPanel extends JPanel implements PreferencesChangeListener {
8181 }
8282 }
8383 }
84+ void mouseEntered (MouseEvent e ) {}
85+ void mouseExited (MouseEvent e ) {}
86+ void mouseClicked (MouseEvent e ) {
87+ int index = tabPanel. indexAtLocation(e. x, e. y)
88+ if (index != -1 && SwingUtilities . isMiddleMouseButton(e)) {
89+ removeComponent(tabPanel. getComponentAt(index))
90+ }
91+ }
8492 })
8593 return tabPanel
8694 }
0 commit comments