Вот мой код прослушивателя действий:
Код: Выделить всё
DocumentTabs.getTabComponentAt(plainTextTab.index).addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
int index = DocumentTabs.getSelectedIndex();
if (index != 0) {
JPopupMenu popupMenu = new JPopupMenu();
JMenuItem close = new JMenuItem("Close Tab");
JMenuItem save = new JMenuItem("Save");
close.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
DocumentTabs.remove(index);
}
});
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
plainTextTab.save();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
});
popupMenu.add(close);
popupMenu.show(MainPanel, e.getX(), e.getY());
}
} else if (e.getButton() == MouseEvent.BUTTON2) {
int index = DocumentTabs.getSelectedIndex();
if (index != 0) {
DocumentTabs.remove(index);
}
}
}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
[*]Вкладки создаются вручную, то есть я Я создал свой собственный класс для вкладок в виде обычного текста (дайте мне знать, если вам нужен этот класс).
[*]Я новичок в программировании на Java.
[*]Если мое объяснение неясно, извините, потому что я тороплюсь опубликовать это, но, пожалуйста, оставьте комментарий вместо того, чтобы голосовать против, чтобы я мог попытаться объяснить это лучше.
Подробнее здесь: https://stackoverflow.com/questions/791 ... tabbedpane