Hi,
ich habe ein JPopupMenu, in das ich JMenuItems füge. Die JMenuItems bekommen jeweils einen ActionListener, etwa so:
Das JPopupMenu wird eingeblendet, wenn der Benutzer auf einen bestimmten Knoten in einem JTree anklickt. Je nachdem, auf welchen Knoten geklickt wurde, sollen nun bestimmte JMenuItems deaktiviert werden. An der Stelle habe ich aber leider keine Ahnung, welche Aktion das jeweilige JmenuItem ausführt (siehe code unten, Kommentar). Wie macht man sowas?
ich habe ein JPopupMenu, in das ich JMenuItems füge. Die JMenuItems bekommen jeweils einen ActionListener, etwa so:
Java:
JMenuItem mi = new JMenuItem(uf.name);
mi.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
executePlugin(uf);
}
});
popup.add(mi);
Das JPopupMenu wird eingeblendet, wenn der Benutzer auf einen bestimmten Knoten in einem JTree anklickt. Je nachdem, auf welchen Knoten geklickt wurde, sollen nun bestimmte JMenuItems deaktiviert werden. An der Stelle habe ich aber leider keine Ahnung, welche Aktion das jeweilige JmenuItem ausführt (siehe code unten, Kommentar). Wie macht man sowas?
Java:
popup.addPopupMenuListener(new PopupMenuListener(){
@Override
public void popupMenuCanceled(PopupMenuEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent arg0) {
System.out.println("Component shown");
JPopupMenu pm =(JPopupMenu)arg0.getSource();
for (Component mi : pm.getComponents()) {
if (mi instanceof JMenuItem)
; // wenn das MenuItem ein Plugin startet, dann deaktivieren
}
}
});