Ho tovato in rete questo codice per aggiungere il tasto di chiusura ad un jTabbedPane
public class TabComponent extends JPanel implements ActionListener {
private JTabbedPane pane;
public TabComponent(String title, JTabbedPane pane) {
this.pane = pane;
setOpaque(false);
JLabel label = new JLabel(title);
add(label);
JButton button = new JButton("x");
button.setPreferredSize(new java.awt.Dimension(15, 15));
button.setMargin(new Insets(0,0,0,0));
button.addActionListener(this);
add(button);
}

public void actionPerformed(ActionEvent e) {
int j = (pane.indexOfTabComponent(TabComponent.this));
if (j != -1)
pane.remove(j);
}

La nuova tab viene creata con questo codice

private int j=0;
...
...
newFileMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter( new Filtro(".ds2",".ds2") );
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
namedataset=selectedFile.getName();
perdataset=selectedFile.getAbsolutePath(); }
createPage1(namedataset,perdataset);
tabbedPane.addTab( namedataset, panel1 );
tabbedPane.setTabComponentAt(j, new TabComponent (namedataset,tabbedPane));
j++;
}
});
...
...
Tutto sembra funzionare , ma appena chiudo un tab e ne apro uno nuovo , questo mi esce senza la x per chiudere. i successivi si aprono con la x, il problema sorge appena ne chiudo qualcuno.

Come mai?