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.
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.
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...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.