java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > AWT, Swing, JavaFX & SWT

AWT, Swing, JavaFX & SWT Themen zur Programmierung von Benutzer-Oberflächen (GUI, Applet) sowie zur Grafikprogrammierung (2D / 3D)

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 27.10.2004, 22:46   #1 (permalink)
Nicht angemeldet
 
Fachbeiträge: n/a
Standard Rechte Maustaste soll Menü aufrufen

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
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 27.10.2004, 23:06   #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());
    }
});
Da es üblicherweise pro Komponente unterschiedliche PopupMenus gibt, muß man auch entsprechend für jede Komponente einen [/code]
__________________
Versuchen ist der erste Schritt zum Versagen (Homer J. Simpson)
0xdeadbeef ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 27.10.2004, 23:15   #3 (permalink)
Nicht angemeldet
 
Fachbeiträge: n/a
Es gibt bei MouseEvent die Methode "isPopupTrigger()".
Code:
public void mouseClicked(MouseEvent event) {
  if(event.isPopupTrigger()) {
    //... hier Popup anzeigen, wie im Beispiel oben
  }
}
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 28.10.2004, 08:41   #4 (permalink)
Stammbenutzer
Floppy Disc
 
Registriert seit: 15.08.2003
Fachbeiträge: 911
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat: Anonymous
Es gibt bei MouseEvent die Methode "isPopupTrigger()".
Genau, bei dem Beispiel von 0xdeadbeef könnte es sonst passieren, das MacOS X User doof da stehen, weil viele nur eine Maustaste haben...
__________________
*** JTS3ServerMod - Umfangreicher Teamspeak 3 Server Bot ***
Homepage: http://www.stefan1200.de
Stefan1200 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 28.10.2004, 09:37   #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)
0xdeadbeef ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 28.10.2004, 10:34   #6 (permalink)
Stammbenutzer
Floppy Disc
 
Registriert seit: 15.08.2003
Fachbeiträge: 911
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat: 0xdeadbeef
Ok, ok , schlagt mich
Und überhaupt: Leute mit einer Maustaste sind selber schuld
Ich will ja nicht widersprechen...zumal MacOS X Mäuse mit mehr als einer Taste untersützt. (Ohne zusätzliche Treiber)
__________________
*** JTS3ServerMod - Umfangreicher Teamspeak 3 Server Bot ***
Homepage: http://www.stefan1200.de
Stefan1200 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 28.10.2004, 14:54   #7 (permalink)
Nicht angemeldet
 
Fachbeiträge: n/a
Zitat: Stefan1200
Ich will ja nicht widersprechen...zumal MacOS X Mäuse mit mehr als einer Taste untersützt. (Ohne zusätzliche Treiber)
Wahnsinn! Sowas gibt es bereits? Der Fortschritt ist wohl nicht aufzuhalten.
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 28.10.2004, 19:34   #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?
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.10.2004, 14:00   #9 (permalink)
Stammbenutzer
Halbes Megabyte
 
Benutzerbild von Student
 
Registriert seit: 22.01.2004
Fachbeiträge: 520
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat: Anonymous
wie kann ich festlegen, dass ich auch mit Rechtsklick ne Row selektieren kann?
würde ich nicht machen.

links: selektieren
rechts: popup aufrufen

so würde ich das als user an die sache rangehen.

Zitat:
Doch wie bekomm ich den SelectedRowIndex jetzt?
so?
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTable.html#getSelectedRow()
Student ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.10.2004, 15:01   #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.
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.10.2004, 17:22   #11 (permalink)
Stammbenutzer
Halbes Megabyte
 
Benutzerbild von Student
 
Registriert seit: 22.01.2004
Fachbeiträge: 520
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat: Anonymous
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.
ach .. jetzt verstehe ich .. mussich mal nachdenken ..
Student ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 30.10.2004, 14:40   #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;
}
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de