26. april 2005 - 15:00
Der er
4 kommentarer
Autoscroll tabel ved drag af kolonne header
Jeg har brug for at lave en autoscroll ved drag af kolonne header i en JTable.
Situationen opstår ved brede tabeller, hvor brugeren ønsker at omordne kolonnernes rækkefølge og vil trække en kolonne ud over det synlige område.
27. april 2005 - 09:54
#2
Desværre ikke.
Det jeg er efter er muligheden for at tabellen automatisk begynder at scrolle mens man flytter en header kolonne. Dvs at tabellen gerne skulle scrolle hår cursoren nærmer sig kanten af scroll panen.
Eksempel:
Jeg har en tabel med kolonnerne a, b, c, d, e, f, g, h, i, j, k, l, m, n og o.
Kun h, i, j, k, l og m er synlige i ScrollPane vinduet.
Jeg vil flytte k til at ligge mellem a og b.
p.t. kræver det at man flytter og scroller manuelt i flere trin.
27. april 2005 - 10:22
#4
Jeg tror jeg fandt en mulig løsning, men den er ikke helt god, den virker som om den hakker lidt i det, og når den endeligt begynder at scrolle, går det meget stærkt :-)
table.getTableHeader().addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
int x = e.getX();
int y = e.getY();
Rectangle r = table.getVisibleRect();
if (x < r.x + 2 || x > r.x + r.width - 2) {
table.scrollRectToVisible(new Rectangle(x, y, 1, 1));
}
}
}
);
Jeg lader sp. være åbent hvis der er nogen der kan komme med en mere ... blid løsning...