1212
1313public class TabComponent extends JPanel {
1414
15+ private JTabbedPane pane ;
16+
1517 public TabComponent (final JTabbedPane pane ) {
1618 super (new FlowLayout (FlowLayout .LEFT , 0 , 0 ));
1719 if (pane == null ) {
1820 throw new NullPointerException ("TabbedPane is null" );
1921 }
2022
23+ this .pane = pane ;
24+
2125 setOpaque (false );
2226 JLabel label = new JLabel () {
2327 public String getText () {
@@ -51,7 +55,6 @@ public String getText() {
5155 if (pane .indexOfTabComponent (TabComponent .this ) != -1 ) {
5256 int i = pane .indexOfTabComponent (TabComponent .this );
5357 removeTab (i );
54- pane .remove (pane .indexOfTabComponent (TabComponent .this ));
5558 }
5659 }));
5760
@@ -60,7 +63,6 @@ public String getText() {
6063 if (pane .indexOfTabComponent (TabComponent .this ) != -1 ) {
6164 int i = pane .indexOfTabComponent (TabComponent .this );
6265 removeTab (i );
63- pane .remove (pane .indexOfTabComponent (TabComponent .this ));
6466 }
6567 });
6668
@@ -73,10 +75,8 @@ public String getText() {
7375
7476 if (pane .indexOfTabComponent (TabComponent .this ) != 0 ) {
7577 removeTab (0 );
76- pane .remove (0 );
7778 } else {
7879 removeTab (1 );
79- pane .remove (1 );
8080 }
8181 }
8282 });
@@ -87,6 +87,7 @@ public String getText() {
8787 private void removeTab (int index ) {
8888 ResourceViewer resourceViewer = (ResourceViewer ) BytecodeViewer .viewer .workPane .tabs .getComponentAt (index );
8989 BytecodeViewer .viewer .workPane .openedTabs .remove (resourceViewer .resource .workingName );
90+ pane .remove (index );
9091 }
9192
9293}
0 commit comments