tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
586
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    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
     

  2. #2
    Tsunamii Tsunamii ist offline Mitglied Silber
    Registriert seit
    Jul 2009
    Beiträge
    75
    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.
     

  3. #3
    Maddin Maddin ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    71
    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
     

  4. #4
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    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?
     

  5. #5
    Tsunamii Tsunamii ist offline Mitglied Silber
    Registriert seit
    Jul 2009
    Beiträge
    75
    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
         }
    }
     

  6. #6
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    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
     

  7. #7
    Marc79 Marc79 ist offline Mitglied Silber
    Registriert seit
    Oct 2010
    Beiträge
    69
    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

  1. Rechte Maustaste sperren
    Von BiERWiESEL im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 24.04.09, 08:07
  2. Rechte MAustaste in Div
    Von notebook20000 im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 10.07.07, 08:13
  3. Event rechte Maustaste
    Von imini im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 07.04.05, 13:56
  4. Rechte Maustaste sperren
    Von FirstTerminator im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 17.02.05, 14:47
  5. Event: Rechte Maustaste?
    Von Faramir im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 24.07.02, 14:55

Stichworte