ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
586
586
EMPFEHLEN
-
Hallo zuammen.
eine Frage zum JTable.
Ich habe eine Tabelle, die mir Datensätze angzeigt.
Dieser Tabelle habe ich eine PopUp Menü zugewiesen.
Wenn ich jetzt auf die Tabelle mit der rechten Maustaste klicke, dann wird das PopUp Menü auch sichtbar.
Mein Problem ist dabei, dass wenn ich z.B. mit der Maus über dem dritten Tabelleneintrag bin und dann die rechte Maustaste klicke, das PopUp Menü auf der richtigen Datensatzhöhe sich befindet, die Zeile selbst aber nicht markiert ist.
Anders gesagt, ich muss zuerst linke Maustaste drücken um den Datensatz zu selektieren und dann die rechte Maustaste.
Gibt es hierfür eine Einstellung am JTable Steuerelemt selbst oder muss einen Dreizeiler einprogrammieren.
Ich verwende NetBeans 6.9.
Vielen Dank vorab für eure Hilfe!
Gruß Marc
-
Warscheinlich wird es auf eine kleine Erweiterung der Tabelle hinauslaufen.
Was mir spontan eingefallen ist, man könnte zum Beispiel einen MouseListener an die JTable anbinden. Dieser reagiert dann auf einen Rechstklick der Maus und selektiert die aktuelle im Fokus liegende Zeile.
Ob das ganze auch so funktioniert müsste man ausprobieren.
-
Hallo,
Ich hatte schon mal das selbe Problem und hab es dann auch kurzerhand so gelöst, wie Tsunamii es schon beschrieben hat.
Funktioniert auch.
Meiner Meinung nach die einfachste Lösung... Wenn es eine schönere gibt, enthalt sie uns nicht vor!
Gruß,
Martin
-
Ich habe aktuell folgendes gemacht:
Code :1 2 3 4 5 6 7
private void tableMousePressed(java.awt.event.MouseEvent evt) { if (evt.isPopupTrigger()) { contextMenu.show(evt.getComponent(), evt.getX(), evt.getY()); } }
Damit kriege ich das PopUp Menü angezeigt, wenn die rechte Maustaste geklickt wurde.
Wie aber soll ich den Index der "quasi" selektierten Zeile abfeuern?
-
hier ist mal nen Ansatz, er müsste aber noch getestet werden:
Code java:1 2 3 4 5 6 7 8
myjtable.addMouseListener(this); // oder ein externer public void mouseClicked(MouseEvent e) { if(e.getButton == MouseEvent.BUTTON2) { // ob rechte Maustaste gedrückt ist ... myjtable.getSelectedRow(); // sollte dir die geklickte reihe geben contextMenu... // PopupMenü öffnen } }
-
hi,
so ähnliche hatte ich das schon probiert.
getSelectedRow() liefert leider -1, somit also keinen Wert.
... ich schaue, ob mir noch was einfällt ... scheint ja nicht so ohne zu sein unter java
-
So .... das ist die Lösung

Code :1
this.jTable1.changeSelection(this.jTable1.rowAtPoint(evt.getPoint()), 0, false, false );
damit wird der Index neugesetzt, wenn die rechte Maustaste auf eine Tabelle geklickt wurde
Gruß Marc
Ähnliche Themen
-
Rechte Maustaste sperren
Von BiERWiESEL im Forum Flash PlattformAntworten: 1Letzter Beitrag: 24.04.09, 08:07 -
Rechte MAustaste in Div
Von notebook20000 im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 10.07.07, 08:13 -
Event rechte Maustaste
Von imini im Forum Flash PlattformAntworten: 4Letzter Beitrag: 07.04.05, 13:56 -
Rechte Maustaste sperren
Von FirstTerminator im Forum Flash PlattformAntworten: 3Letzter Beitrag: 17.02.05, 14:47 -
Event: Rechte Maustaste?
Von Faramir im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 24.07.02, 14:55





Zitieren
Login





