jPopupMenu - Problem bei der Positionierung

Status
Nicht offen für weitere Antworten.

Marz

Aktives Mitglied
Hallo Zusammen,

Ich lasse in einem Panel mit Linksklick eine Popupmenu erscheinen. Die die Stelle des Erscheinens wird durch den Mausklick festgelegt.

Code:
public void mouseClicked(MouseEvent e) {
		// linke Taste
		if (e.getButton() == MouseEvent.BUTTON3) {
			location = e.getPoint();
			getJPopupMenu().setLocation(e.getPoint());
			getJPopupMenu().setVisible(true);

		}

	}


Funktioniert auch soweit. Wenn ich aber mein Programmfenster von seiner originalen Enstehungsposition wegziehe und das Popupmenu wieder erscheinen lassen will, erscheit es an der ursprünglichen Enstehungsposition meines Programmfensters!

Vielleicht hat dazu jemand schon mal was gemacht.

Vielen Dank im Vorraus!

Marz
 
PopupMenus lässt mit show(...) erscheinen:
Code:
public void mouseClicked(MouseEvent e) { 
    getJPopupMenu().show(e.getComponent(), e.getX(), e.getY());
}
 
Die Welt besteht nicht nur aus Windows und dementsprechend ist Mouse Button 3 nicht immer für ein Popup verantwortlich.
So geht's richtig:
Code:
class PopupListener extends MouseAdapter {
    public void mousePressed(MouseEvent e) {
        maybeShowPopup(e);
    }

    public void mouseReleased(MouseEvent e) {
        maybeShowPopup(e);
    }

    private void maybeShowPopup(MouseEvent e) {
        if (e.isPopupTrigger()) {
            popup.show(e.getComponent(),
                       e.getX(), e.getY());
        }
    }
}

http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben