JmenuItems in JPopupMenu kontextabhängig deaktivieren

tokitok

Mitglied
Hi,

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 
				}
				
			}
			
		});
 

Marco13

Top Contributor
Man könnte sich irgendwo speichern, welche dieser JMenuItems ein Plugin starten, notfalls in einem Set<JMenuItem> oder so...

Ein bißchen mehr Kontext wäre vielleicht hilfreich, aber du solltest dir auf jeden Fall mal Actions ansehen: How to Use Actions (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Other Swing Features) - damit könnte das etwas eleganter lösbar sein: Damit kann man überall dort, wo die Action an sich bekannt ist, sowas mache wie
pluginExecuteAction.setEnabled(false);
und das bewirkt dann, dass automatisch alle JMenuItems und Buttons und sonstigen "dinger", die diese Action ausführen, ausgegraut werden. (Sehr praktisch wenn man dieselbe Action z.B. im Menü und der Toolbar hasben will)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JMenuItems für Touchscreen auseinanderziehen AWT, Swing, JavaFX & SWT 3
R JMenuItems mit Radiobutton/Haken AWT, Swing, JavaFX & SWT 2
TheJavaKid Lösung für zu Viele JMenuItems. AWT, Swing, JavaFX & SWT 4
L Wie adde ich ein JPopUpMenu AWT, Swing, JavaFX & SWT 3
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
S Swing JPopupMenu visible AWT, Swing, JavaFX & SWT 4
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
xehpuk Swing Listener für JPopupMenu AWT, Swing, JavaFX & SWT 3
hdi Workaround: TrayIcon & JPopupMenu AWT, Swing, JavaFX & SWT 3
K Swing Listener bei JPopupMenu AWT, Swing, JavaFX & SWT 9
S JPopupMenu oder JCombobox die JList oeffnet..? AWT, Swing, JavaFX & SWT 7
A Swing in JPopupMenu die JRadioButtonMenuItems durchlaufen AWT, Swing, JavaFX & SWT 3
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
pinerski Probleme mit JPopupMenu und JMenuItem AWT, Swing, JavaFX & SWT 7
hdi Swing JPopupMenu: Größe AWT, Swing, JavaFX & SWT 4
B JPopupMenu, getParent Problem... AWT, Swing, JavaFX & SWT 2
Dragonfire width of JPopupMenu StyleBug AWT, Swing, JavaFX & SWT 3
M JPopupMenu - Ein vorhandenes Kontextmenü erweitern AWT, Swing, JavaFX & SWT 6
Iron Monkey JPopupMenu/JMenuItem Index für getSubElements()[] ermitteln AWT, Swing, JavaFX & SWT 8
X JPopupMenu Items aktualisieren sich nicht AWT, Swing, JavaFX & SWT 3
T JPopupMenu "schließen" AWT, Swing, JavaFX & SWT 7
M jPopupMenu AWT, Swing, JavaFX & SWT 2
M jPopupMenu - Problem bei der Positionierung AWT, Swing, JavaFX & SWT 3
N JPopupMenu - ausgewähltes Element zurückgeben AWT, Swing, JavaFX & SWT 2
P JPopupMenu scrollen AWT, Swing, JavaFX & SWT 2
A JPopupMenu: Nach oben aufpoppen AWT, Swing, JavaFX & SWT 9
S Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
T JPopupMenu wird bei Rechtsklick angezeigt! AWT, Swing, JavaFX & SWT 3
Firefork JPopupMenu unter einem Schalter darstellen AWT, Swing, JavaFX & SWT 2
K Netbeans GUI Builder (Matisse) und erstellen von JPopupMenu AWT, Swing, JavaFX & SWT 1
I In JPopupMenu scrollen AWT, Swing, JavaFX & SWT 4
M JPopupMenu per linker Maustaste öffnen AWT, Swing, JavaFX & SWT 9
V Beliebige Komponenten in einem JPopupMenu? AWT, Swing, JavaFX & SWT 3
F Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
C JPopUpMenu in einem JTree ist lahm AWT, Swing, JavaFX & SWT 14
V JPopupMenu Problem und Tipp zu mouse/key AWT, Swing, JavaFX & SWT 3
F JPopupMenu und AbstractAction AWT, Swing, JavaFX & SWT 2
N Problem mit JPopupMenu und alwaysOnTop AWT, Swing, JavaFX & SWT 4
G Schließen von JPopupMenu AWT, Swing, JavaFX & SWT 14
G Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 30
R Hässlicher Punkt bei JPopupMenu AWT, Swing, JavaFX & SWT 12
S JPopupMenu - Kontrolliert beenden AWT, Swing, JavaFX & SWT 3
C Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 6
T java.awt.IllegalComponentStateException bei JPopupMenu AWT, Swing, JavaFX & SWT 6
G Problem mit JPopupMenu und Menüauswahl AWT, Swing, JavaFX & SWT 4
R JPopupMenu,JScrollPane + repaint AWT, Swing, JavaFX & SWT 8
D Probleme bei der Positionierung von JPopupMenu AWT, Swing, JavaFX & SWT 2
J "Problem" mit JPopupMenu AWT, Swing, JavaFX & SWT 7
G JPopupMenu in JTable AWT, Swing, JavaFX & SWT 4
C jComboBox während eingabe kontextabhängig vorausfüllen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben