![]() |
|
|
|||||||
| AWT, Swing, JavaFX & SWT Themen zur Programmierung von Benutzer-Oberflächen (GUI, Applet) sowie zur Grafikprogrammierung (2D / 3D) |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
ich würd gern wenn ein Mousclick auf eine bestimmte Komponente in meiner GUI gemacht wird, ein Menü aufpoppen lassen, indem einige Funktionen vorhanden sein sollen.
Existiert sowas bereits oder muss ich mir das selbst kreieren? vom Prinzip müsst ich ja einfach nen MouseListener adden. Der reagiert dann auf den Rechtsclick. Die Mousezeigerlocation wird ermittelt und da setz ich dann mein Fenster hin. Sobald das Fenster den Focus verliert, schliesst es sich. Hört sich eigentlich recht umkompliziert an
|
| #2 (permalink) | |
|
Stammbenutzer
Floppy Disc
Registriert seit: 22.10.2004
Fachbeiträge: 779
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Es gibt dafür bereits eine entsprechende Swing-Komponente: JPopupMenu. Das Menü wie gewohnt mit Items usw. füllen, dargestellt wird es mittels der Methode show an den Koordinaten, die das mouseClicked-Event zurückliefert.
In diesem Beispiel ist jPopupMenu die Referenz auf das Menü: Code:
addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getButton() == evt.BUTTON3)
jPopupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
}
});
__________________
Versuchen ist der erste Schritt zum Versagen (Homer J. Simpson) |
|
|
| #4 (permalink) | ||||||||||||||||
|
Stammbenutzer
Floppy Disc
Registriert seit: 15.08.2003
Fachbeiträge: 911
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
__________________
*** JTS3ServerMod - Umfangreicher Teamspeak 3 Server Bot *** Homepage: http://www.stefan1200.de |
|||||||||||||||
|
|
||||||||||||||||
| #5 (permalink) | |
|
Stammbenutzer
Floppy Disc
Registriert seit: 22.10.2004
Fachbeiträge: 779
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Ok, ok , schlagt mich
![]() Und überhaupt: Leute mit einer Maustaste sind selber schuld
__________________
Versuchen ist der erste Schritt zum Versagen (Homer J. Simpson) |
|
|
| #6 (permalink) | ||||||||||||||||
|
Stammbenutzer
Floppy Disc
Registriert seit: 15.08.2003
Fachbeiträge: 911
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
__________________
*** JTS3ServerMod - Umfangreicher Teamspeak 3 Server Bot *** Homepage: http://www.stefan1200.de |
|||||||||||||||
|
|
||||||||||||||||
| #8 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
ok dann weiter im Kontext. Den Rechtsklick zu verwirklichen scheint ja ned schwer zu sein.
Ich würd den gern auf ne JTable anwenden. Also ich mach nen Rechtklick auf ne Row und dann soll das Popupmenu erscheinen. Das is auch ned das Problem. Doch wie bekomm ich den SelectedRowIndex jetzt? Bzw wie kann ich festlegen, dass ich auch mit Rechtsklick ne Row selektieren kann? |
| #9 (permalink) | |||||||||||||||||||||||||||||||
|
Stammbenutzer
Halbes Megabyte
Registriert seit: 22.01.2004
Fachbeiträge: 520
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
links: selektieren rechts: popup aufrufen so würde ich das als user an die sache rangehen.
|
||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||
| #10 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
das mit der Verteilung der Klickfunktionen will ich auch so beibehalten.
Nur das Problem is ja, dass die Methode getSelectedRow() -1 zurückliefert wenn keine Row selektiert ist und genau das is ja der Punkt bei nem Rechtsklick. Die Row wird nämlich dabei nicht selektiert. Bsp: Ich klicke rechts auf einen JTable-Eintrag. Die Row wird selektiert und es geht ein Popupmenu auf, dass Operationen für die selektierte Row anbietet. |
| #11 (permalink) | ||||||||||||||||
|
Stammbenutzer
Halbes Megabyte
Registriert seit: 22.01.2004
Fachbeiträge: 520
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
|
|||||||||||||||
|
|
||||||||||||||||
| #12 (permalink) | |
|
Nicht angemeldet
Fachbeiträge: n/a
|
So ungefähr kannst Du es machen.
Code:
public void mouseClicked(MouseEvent event) {
if(event.isPopupTrigger() && selectRowAt(event.getPoint())) {
// Popup anzeigen
}
}
private boolean selectRowAt(Point point) {
int row = table.getRowAt(point);
if(row == -1)
return false;
table.setRowSelectionInterval(row, row);
return true;
}
|
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Rechte Maustaste abfangen | AWT, Swing, JavaFX & SWT | 0 | 24.09.2007 08:13 | |
| JTree + rechte Maustaste | AWT, Swing, JavaFX & SWT | 2 | 25.04.2006 13:01 | |
| listener + rechte maustaste | steff3 | Java Basics - Anfänger-Themen | 4 | 25.01.2006 22:16 |
| rechte maustaste ansprechen | el | Java Basics - Anfänger-Themen | 1 | 18.01.2005 15:08 |
| Rechte Maustaste deaktivieren | Josty_de | Für Verirrte - Fragen zu JavaScript | 4 | 06.02.2004 13:13 |
| Lesezeichen |
|
|