Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane

  • Themenstarter Themenstarter asdioasd00
  • Beginndatum Beginndatum
A

asdioasd00

Gast
Hallo,

wie bekomme ich einen korrekten Wert für table.rowAt(point), wenn table in einem JScrollPane steckt?

Wäre es z.B. möglich die y-Verschiebung der JTable zu bekommen, diese auf point.y zu addieren und dann den korrekten Wert auszulesen? Wenn ja, wie bekomme ich den Versatz wenn nein, wie dann?

Vielen Dank

(PS: Danke für die GastSchreibFunktion, nur die Namenssuche ist anstrengend)
 
Die sollte genauso funktionieren, als ob die Table in keinem ScrollPane läge. Zeig mal deinen Aufruf, welchen Punkt benutzt du denn da?
 
Java:
JTable table = ((TableRowHeader)evt.getSource()).getTable();
		int t = table.rowAtPoint(evt.getPoint());

Da ich ja das JTable im ScrollPane verschieben kann, kann der Point sicherlich nicht der richtige Wert sein.

Ich benötige also z.B. so etwas wie den absoluten Punkt im JTable.
 
Java:
		JTable table = ((TableRowHeader)evt.getSource()).getTable();
		Point p = ((TableRowHeader)evt.getSource()).getViewPosition();
		p.x+=evt.getPoint().x;
		p.y+=evt.getPoint().y;
		int t = table.rowAtPoint(p);

So scheints zu funktionuckeln - danke
 
Moment mal, was für ein TableRowHeader?
Wenn du in einem ScrollPane einen RowHeader einfügst und eine JTable in den Viewport, dann ist der RowHeader nicht Teil vom JTable. Der RowHeader deiner Scrollpane scrollt auch nicht mit, es sei denn du bringst ihm das bei. Jedenfalls ist ein Punkt auf dem RowHeader nicht der gleiche Punkt im Table, zumindest die x koordinate ist anders.
 
Öhm, die x-Koordinate ist bei rows wohl egal.
Mein RowHeader scrollt mit 🙂
Das Problem muss dann (mit scrollen) eigentlich auch bei normalen JTables/JScrollPanes bestehen.

Problem gelöst, irgendein Mod kann wohl son Häkchen setzen.
 

Zurück
Oben