Hallo,
ich hab hier ein Problem, bei dem ich nicht weiter weiß.
Ich habe ein normales Menü, dem ich mittels ner for()-Schleife mehrere JMenuItems hinzufüge. Nun will ich diesen Items ein PopupMenu hinzufügen, das es mir ermöglicht, diese Items wieder aus dem Menü zu löschen (noch nicht implementiert).
Folgender Code:
Wenn ich das ganze nun ausprobiere bekomme ich eine java.awt.IllegalComponentStateException in der Methode MouseReleased() mit dem Hinweis "component must be showing on the screen to determine its location".
Leider kenn ich mich mit den Exceptions nicht so aus und hab auch im Internet nicht viel gefunden, was mir weiterhilft.
Deshalb würde ich mich freuen, wenn mir jemand weiter helfen könnte und mir sagt, was ich da falsch gemacht habe, und ob das überhaupt geht, was ich mir da vorgestellt habe (also einem Menü ein Popup hinzufügen - wie im InternetExplorer, wo man Bookmarks aus dem Menü per Klick auf die rechte Maustaste löschen kann). Wenn es nicht geht, ist es auch nicht schlimm. Dann überleg ich mir was anderes.
Danke schon mal im Voraus.
ich hab hier ein Problem, bei dem ich nicht weiter weiß.
Ich habe ein normales Menü, dem ich mittels ner for()-Schleife mehrere JMenuItems hinzufüge. Nun will ich diesen Items ein PopupMenu hinzufügen, das es mir ermöglicht, diese Items wieder aus dem Menü zu löschen (noch nicht implementiert).
Folgender Code:
Code:
final JPopupMenu deletePopup = new JPopupMenu();
JMenuItem deleteItem = new JMenuItem("Löschen");
deleteItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//TODO
}
});
...
for (int i=0; i<pFile.length; i++) {
...
JMenuItem menuItem = new JMenuItem(p.getProperty("profile.name", pFile[i]));
menuItem.setActionCommand(profileDirName+"/"+pFile[i]);
menuItem.addActionListener(pml);
menuItem.addMouseListener(new MouseListener() {
public void mousePressed(MouseEvent evt) {
if (evt.isPopupTrigger()) {
deletePopup.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
public void mouseReleased(MouseEvent evt) {
if (evt.isPopupTrigger()) {
deletePopup.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
public void mouseClicked(MouseEvent evt) {}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
});
}
...
Wenn ich das ganze nun ausprobiere bekomme ich eine java.awt.IllegalComponentStateException in der Methode MouseReleased() mit dem Hinweis "component must be showing on the screen to determine its location".
Leider kenn ich mich mit den Exceptions nicht so aus und hab auch im Internet nicht viel gefunden, was mir weiterhilft.
Deshalb würde ich mich freuen, wenn mir jemand weiter helfen könnte und mir sagt, was ich da falsch gemacht habe, und ob das überhaupt geht, was ich mir da vorgestellt habe (also einem Menü ein Popup hinzufügen - wie im InternetExplorer, wo man Bookmarks aus dem Menü per Klick auf die rechte Maustaste löschen kann). Wenn es nicht geht, ist es auch nicht schlimm. Dann überleg ich mir was anderes.
Danke schon mal im Voraus.