16. december 2001 - 15:09Der er
3 kommentarer og 1 løsning
scrollbar vil ikke scrolle helt i bund
Jeg modtager nogle chattext objekter fra en server og kalder insertChatText metoden. Det virker fint. Problemet er at scrollbaren ikke scroller det sidste klik ned så den sidste nye tekst kan ses.
Her lidt af koden
JScrollBar scrollbar; JList chatlist;
public Chattext(int id, String txt,Color c) { this.clientid = id; this.text = txt; this.col = c; }
Du kan benytte en AdjustmentListener, den duer også selvom du ikke har en JList, men uanset hvad du har. Den tilføjes med en addAdjustmentListener( new ScrollBarListener(scrollBar) ); her er koden: private static class ScrollBarListener implements AdjustmentListener { private JScrollBar bar = null;
public ScrollBarListener( JScrollBar bar ){ this.bar = bar; } // constructor
public void adjustmentValueChanged( AdjustmentEvent e ) { bar.setValue( bar.getMaximum() ); } // adjustmentValueChanged } // ScrollBarListener
Bortset fra at, hans problem er, at umiddelbart efter han har hældt noget i listen, vil han vise den sidste linie, og derfor kalder scrollbar.setValue(scrollbar.getMaximum()). Imidlertid sker der det, at JListen udvider efterfølgende maxmimum værdien på sin ScrollPanes Scrollbar, og det ser derfor ud som om, den ikke når helt i bund. value == max-1.
Hvis man tilføjer den adjustmentlistener, observerer man når scrollbaren ændrer sig, og ikke listen. Dvs. den forkerte vej rundt. Derudover vil lige netop denne kode sikre, at man aldrig kan bruge sin scrollbar til noget som helst.
Perfekt, og iøvrigt tak for den fine forklaring i kommentaren
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.