Hallo zusammen,
ich habe ein Problem beim scrollen in meiner JTable. Meine Tabelle besitzt keine Scrollbars, sie wird also nur mit der Tastatur angesteuert. Nun möchte ich, dass die aktuelle Zeilenauswahl immer vertikal zentriert dargestellt wird. Horizontal ist die komplette Tabelle abgebildet.
Ich habe dazu auch bereits hilfreichen Code gefunden, der allerdings nicht genau zentriert. In meinem Fall sind immer 7 Zeilen sichtbar, das "Zentrum" stellt aber hier die 5. Zeile dar. Kann mir jemand dabei helfen die Mitte auf die 4.Zeile zu verlagern?
Hier ist der entsprechende Code:
Ich würde mich über einen goldenen Tipp sehr freuen.
Viele Grüße
ich habe ein Problem beim scrollen in meiner JTable. Meine Tabelle besitzt keine Scrollbars, sie wird also nur mit der Tastatur angesteuert. Nun möchte ich, dass die aktuelle Zeilenauswahl immer vertikal zentriert dargestellt wird. Horizontal ist die komplette Tabelle abgebildet.
Ich habe dazu auch bereits hilfreichen Code gefunden, der allerdings nicht genau zentriert. In meinem Fall sind immer 7 Zeilen sichtbar, das "Zentrum" stellt aber hier die 5. Zeile dar. Kann mir jemand dabei helfen die Mitte auf die 4.Zeile zu verlagern?
Hier ist der entsprechende Code:
Java:
public static void scrollToCenter(JTable table, int rowIndex, int vColIndex) {
if (!(table.getParent() instanceof JViewport)) {
return;
}
JViewport viewport = (JViewport) table.getParent();
Rectangle rect = table.getCellRect(rowIndex, vColIndex, true);
Rectangle viewRect = viewport.getViewRect();
rect.setLocation(rect.x - viewRect.x, rect.y - viewRect.y);
int centerX = (viewRect.width - rect.width) / 2;
int centerY = (viewRect.height - rect.height) / 2;
if (rect.x < centerX) {
centerX = -centerX;
}
if (rect.y < centerY) {
centerY = -centerY;
}
rect.translate(centerX, centerY);
viewport.scrollRectToVisible(rect);
}
Ich würde mich über einen goldenen Tipp sehr freuen.
Viele Grüße