S
Samwise
Gast
Hallo zusammen
Ich habe ein JDesktopPane in welchem ich ein JInternalFrame darstelle. In diesem habe ich ein JScrollPane in welchem ich eine JTable darstelle.
Ich möchte nun ein PopUp öffnen wenn ich die rechte Maustaste auf einer Row drücke. Dies gelingt mir auch, nur wenn ich jetzt mit dem JScrollPane scrolle, und dann das PopUp öffnen möchte wird es mir an einer völlig anderen Position geöffnet.
Dies pasiert mit folgendem Code:
Das Problem konnte ich lösen indem ich zusätzlich die Postion des JScrollPane dazugerechnet habe:
Wenn ich nun aber das JInternalFrame in meiner JDesktopPane verschiebe, wird das PopUp wieder an einer völlig anderen Position geöffnet.
Ich weiss nicht genau woran das liegen könnte, denn mit getY und getX sollte doch eigentlich die genaue Position der Maus ermittelt werden können - oder mach ich hier einen denkfehler?
Währe über einen Tipp sehr dankbar
Besten Dank
Ich habe ein JDesktopPane in welchem ich ein JInternalFrame darstelle. In diesem habe ich ein JScrollPane in welchem ich eine JTable darstelle.
Ich möchte nun ein PopUp öffnen wenn ich die rechte Maustaste auf einer Row drücke. Dies gelingt mir auch, nur wenn ich jetzt mit dem JScrollPane scrolle, und dann das PopUp öffnen möchte wird es mir an einer völlig anderen Position geöffnet.
Dies pasiert mit folgendem Code:
Code:
[...]getJPopupMenu2().show(this,mouseEvent.getX(),mouseEvent.getY()+150);
Das Problem konnte ich lösen indem ich zusätzlich die Postion des JScrollPane dazugerechnet habe:
Code:
[...]getJPopupMenu2().show(this,mouseEvent.getX() + getScrollPaneTable().getLocationOnScreen().x,mouseEvent.getY() + getScrollPaneTable().getLocationOnScreen().y);
Wenn ich nun aber das JInternalFrame in meiner JDesktopPane verschiebe, wird das PopUp wieder an einer völlig anderen Position geöffnet.
Ich weiss nicht genau woran das liegen könnte, denn mit getY und getX sollte doch eigentlich die genaue Position der Maus ermittelt werden können - oder mach ich hier einen denkfehler?
Währe über einen Tipp sehr dankbar
Besten Dank