JTable automatischer Doppelklick

MScalli

Erfahrenes Mitglied
Hi Leutz.

Ich würd gern auf ne JTable automatisch nen doppelklick machen..
Heisst ich lese eine Tabelle durch und wenn die Value einen bestimmten wert hat will ich das die Zeile automatisch angeklickt wird..
Wie kann ich das am besten bewerkstelligen

wenn ich irgendwie an die X/Y koordinaten der Zeile in der ich mich gerade befinde kommen würde.. dann könnt ich es ja so machen!

Code:
r = new Robot();
r.mouseMove(rowX + 1, rowY + 1);
r.mousePress( InputEvent.BUTTON1_MASK );
r.mouseRelease( InputEvent.BUTTON1_MASK );
r.mousePress( InputEvent.BUTTON1_MASK );
r.mouseRelease( InputEvent.BUTTON1_MASK );


aber wie bekomme ich in dieser Schleife diese koordinaten wenn der inhalt z.B. 'hallo' ist
Code:
for (int i = 0; i < table.getModel().getRowCount(); i++) {
    if(table.getValueAt(i, 0).toString().equals(hallo")){
         // hier müsst ich doch irgendwie da dran kommen!?
    }
}

evtl. geht es auch viel einfacher?!!? weiss irgendwer ne lösung

Gruss
MScalli
 
hallo scalli,

ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber zum auslesen und auswählen von feldern der jtable brauchst du kein robot ;)

auslesen: table.getModel().getValueAt(2, 1);
auswählen: table.changeSelection(2, 1, false, false);

Grüße, Cymatoxa
 
Hi,

zu der Frage mit der Position auf dem Bildschirm.
Ich hab das mal so gemacht:
Java:
Rectangle jTableRechteck = jTable.getCellRect(row, column, includeSpacing);
				//Rechteck erstellen, das die Position der ausgewählten Reihe in der JTable darstellt
				//(int reihe, int spalte, boolean abstände einberechnen)
Point q = new Point(jTableRechteck.x, jTableRechteck.y);
				//entsprechender Punkt dazu
Point r = jTableEinzelnTeleNr.getLocationOnScreen();
				//Punkt erstellen, der die Positionierung der JTable auf dem Bildschirm berechnet
robot.mouseMove(q.x+r.x, q.y+r.y); //Zusammenfügen der Punkte

Wenn du nur auslesen/auswählen willst, ist die Lösung von Cymatoxa natürlich sinnvoller.

Gruß,
Martin
 
Das auslesen der Daten ist ja nicht das Problem.
ich wollts mir nur einfach machen und automatischen nen Doppelklick auf jede Zeile machen um mir arbeit zu sparen :)
Klar das dies keine schöne Lösung gewesen wäre...
Aber faul fauler EDFauler :)

habs natürlich nicht so gemacht, wollte es einfach nur testen ob das so geht.

Trotzdem vielen Dank für die Hilfe
 
Zurück