Я создал свинг-приложение, как показано ниже, которое отображает основные задачи во вкладках при нажатии кнопок, связанных с конкретными задачами.Я добавил небольшую кнопку закрытия для каждой вкладки, и мне нужно закрыть вкладку при нажатии кнопки закрытия, связанной с этой вкладкой.

Кнопка закрытия находится вкласс, который расширен от класса JPanel, как показано ниже,
public class CloseTab extends JPanel {
JLabel title = new JLabel();
JButton closeButton = new JButton();
int tabIndex;
JTabbedPane tabbedPane = null;
public static int SELECTED_TAB_INDEX;
.
.
.
public static void setSELECTED_TAB_INDEX(int SELECTED_TAB_INDEX) {
CloseTab.SELECTED_TAB_INDEX = SELECTED_TAB_INDEX;
}
.
.
public void setCloseAction(ActionListener al) {
closeButton.addActionListener(al);
closeButton.setSize(10, 10);
closeButton.setBorder(new EmptyBorder(0, 0, 0, 0));
closeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/ofm/mnu/icons/delete.gif")));
}
public void setTabIndex(int index) {
this.tabIndex = index;
System.out.println(tabIndex);
}
public void init() {
add(title);
add(closeButton);
setOpaque(false);
setCloseAction(closeActoion);
}
ActionListener closeActoion = new ActionListener() {
public void actionPerformed(ActionEvent e) {
// System.out.println(tabIndex);
if(tabbedPane.getTabCount() != 0 && tabbedPane.getSelectedIndex() == SELECTED_TAB_INDEX){
tabbedPane.remove(SELECTED_TAB_INDEX);
}
}
};
}
и в главном кадре я выделил переменную SELECTED_TAB_INDEX следующим образом:
tbpWorkSpace.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
JTabbedPane a = (JTabbedPane) e.getSource();
CloseTab pnl = new CloseTab();
pnl.setSELECTED_TAB_INDEX(a.getSelectedIndex());
}
});
, но я не смог получитьрезультат, который я хотел, пожалуйста, скажите мне, есть ли другой способ достичь результата, которого я хочу.