リスナーを持つデータベースから JMenuItems が取り込まれた JMenu があります。そのうちの 1 つは、選択された場合にデータベースからエントリを削除することです。これが発生すると、JMenuItem がメニューから消えるはずです。ここに例として短いビットがあります
for (final Racer r : Racer.getAllRacers()) {
JMenuItem j = new JMenuItem(r.getName());
racerDelete.add(j);
j.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int reply = JOptionPane.showConfirmDialog(null,
"Are you sure you want to delete racer " + r.getName() + "?", "Delete?",
JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION){
r.delete();
racerDelete.remove(???);
}
}
});
}
では、「???」の代わりに何を入れることができますか? r のフィールドは、JMenuItem を識別するために必要なほぼすべてです。私はすでに racerDelete.remove(j) を試しましたが、うまくいかず、理由がわかりません。