/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hvordan scrolles der til enden af en JScro~
Fra : Dahl


Dato : 20-10-01 20:32

Hej,

Jeg har et JScrollPane object der indeholder et JTextArea object som hele
tiden tilføjes ny test.

Hvordan sikre jeg mig at det altid er den nyeste tekst i JTextAreaet der
vises (får JScrollPane't til at scrolle helt ned)?

Tak
Dahl



 
 
Jon Rønningen (21-10-2001)
Kommentar
Fra : Jon Rønningen


Dato : 21-10-01 10:24

Hei,

Koden nedenfor har jeg ikke testet og derfor vet jeg ikke om den virker, men
det kanskje slik man kan sette JScrollPanen til å vise det nederste på en
JTextArea:

(...)
int length = JTextArea.getColumns();
Point p = new Point(0, getColumns());
ViewPort vport = JScrollPane.getViewPort();
vport.setViewPosition(toViewCoordinates(p));
(...)

(Java 1.4)


Hilsen
Jon Rønningen


Dahl <[NOSPAM]jimmichr@hotmail.com[NOSPAM]> skrev i
news:9qsjcc$2vtt$1@news.cybercity.dk
> Hej,
>
> Jeg har et JScrollPane object der indeholder et JTextArea object som hele
> tiden tilføjes ny test.
>
> Hvordan sikre jeg mig at det altid er den nyeste tekst i JTextAreaet der
> vises (får JScrollPane't til at scrolle helt ned)?
>
> Tak
> Dahl
>
>



Dahl (21-10-2001)
Kommentar
Fra : Dahl


Dato : 21-10-01 13:50

Hejsa og tak for svaret

Jeg har prøvet af implementere dit forslag (med få ændringer) men kan ikke
få det til at virke. Koden kan ses her:

public void setMainControllerText(String text) {
mainControllerTextArea.setText(text);
int length = mainControllerTextArea.getColumns();
Point p = new Point(0,length);
JViewport vp = mainControllerScrollPane.getViewport();
vp.setViewPosition(vp.toViewCoordinates(p));
}

mainControllerTextArea er JTextArea objected og mainControllerScrollPane er
JScrollPane objected.

Med den her kode er det statig kun det øverste af teksten der vises og altså
ikke den nederste del som er ønsket.

Kan du (eller andre) se hvad der er galt eller komme på andre løsninger?

Mvh
Dahl

"Jon Rønningen" <froland@start.no> wrote in message
news:9qu42n$r6b$1@troll.powertech.no...
> Hei,
>
> Koden nedenfor har jeg ikke testet og derfor vet jeg ikke om den virker,
men
> det kanskje slik man kan sette JScrollPanen til å vise det nederste på en
> JTextArea:
>
> (...)
> int length = JTextArea.getColumns();
> Point p = new Point(0, getColumns());
> ViewPort vport = JScrollPane.getViewPort();
> vport.setViewPosition(toViewCoordinates(p));
> (...)
>
> (Java 1.4)
>
>
> Hilsen
> Jon Rønningen
>
>
> Dahl <[NOSPAM]jimmichr@hotmail.com[NOSPAM]> skrev i
> news:9qsjcc$2vtt$1@news.cybercity.dk
> > Hej,
> >
> > Jeg har et JScrollPane object der indeholder et JTextArea object som
hele
> > tiden tilføjes ny test.
> >
> > Hvordan sikre jeg mig at det altid er den nyeste tekst i JTextAreaet der
> > vises (får JScrollPane't til at scrolle helt ned)?
> >
> > Tak
> > Dahl
> >
> >
>
>



Lars (21-10-2001)
Kommentar
Fra : Lars


Dato : 21-10-01 16:31

Hej Dahl

Der er - så vidt jeg husker - tale om en mindre bug, der kun kan løses ved
en lille workaround. Nedenstående er min egen løsning, som jeg har brugt
tidligere:

public void log(String s){
logArea.append(s + "\n");
logArea.setRows(logArea.getRows()+1);
Rectangle r = jScrollPane2.getViewport().getViewRect();
r.setLocation((int)r.getX(), (logArea.getLineCount())*11);
jScrollPane2.getViewport().scrollRectToVisible(r);
}

logArea er et JTextArea-objekt og jScrollPane2 er det panel, som indeholder
JTextArea-objektet. Alt efter størrelsen på dit TextArea kan du ændre *11 i
setLocation-metodekaldet.

Håber du kan få det til at virke, eller så spørger du bare

/Lars

"Dahl" <[NOSPAM]jimmichr@hotmail.com[NOSPAM]> skrev i en meddelelse
news:9qug5h$254d$1@news.cybercity.dk...
> Hejsa og tak for svaret
>
> Jeg har prøvet af implementere dit forslag (med få ændringer) men kan ikke
> få det til at virke. Koden kan ses her:
>
> public void setMainControllerText(String text) {
> mainControllerTextArea.setText(text);
> int length = mainControllerTextArea.getColumns();
> Point p = new Point(0,length);
> JViewport vp = mainControllerScrollPane.getViewport();
> vp.setViewPosition(vp.toViewCoordinates(p));
> }
>
> mainControllerTextArea er JTextArea objected og mainControllerScrollPane
er
> JScrollPane objected.
>
> Med den her kode er det statig kun det øverste af teksten der vises og
altså
> ikke den nederste del som er ønsket.
>
> Kan du (eller andre) se hvad der er galt eller komme på andre løsninger?
>
> Mvh
> Dahl
>
> "Jon Rønningen" <froland@start.no> wrote in message
> news:9qu42n$r6b$1@troll.powertech.no...
> > Hei,
> >
> > Koden nedenfor har jeg ikke testet og derfor vet jeg ikke om den virker,
> men
> > det kanskje slik man kan sette JScrollPanen til å vise det nederste på
en
> > JTextArea:
> >
> > (...)
> > int length = JTextArea.getColumns();
> > Point p = new Point(0, getColumns());
> > ViewPort vport = JScrollPane.getViewPort();
> > vport.setViewPosition(toViewCoordinates(p));
> > (...)
> >
> > (Java 1.4)
> >
> >
> > Hilsen
> > Jon Rønningen
> >
> >
> > Dahl <[NOSPAM]jimmichr@hotmail.com[NOSPAM]> skrev i
> > news:9qsjcc$2vtt$1@news.cybercity.dk
> > > Hej,
> > >
> > > Jeg har et JScrollPane object der indeholder et JTextArea object som
> hele
> > > tiden tilføjes ny test.
> > >
> > > Hvordan sikre jeg mig at det altid er den nyeste tekst i JTextAreaet
der
> > > vises (får JScrollPane't til at scrolle helt ned)?
> > >
> > > Tak
> > > Dahl
> > >
> > >
> >
> >
>
>



Dahl (21-10-2001)
Kommentar
Fra : Dahl


Dato : 21-10-01 18:03

Så kom det til at funke. Tak Lars.

Men det er sku' stadig noget af en operation at få scrollet til enden (o:
Derfor er andre løsninger selvfølgelig velkomne. Men som sagt det virker og
det er det vigtigst.

Dahl

"Lars" <svend@bent.dk> wrote in message
news:9qupm9$2hsu$1@news.cybercity.dk...
> Hej Dahl
>
> Der er - så vidt jeg husker - tale om en mindre bug, der kun kan løses ved
> en lille workaround. Nedenstående er min egen løsning, som jeg har brugt
> tidligere:
>
> public void log(String s){
> logArea.append(s + "\n");
> logArea.setRows(logArea.getRows()+1);
> Rectangle r = jScrollPane2.getViewport().getViewRect();
> r.setLocation((int)r.getX(), (logArea.getLineCount())*11);
> jScrollPane2.getViewport().scrollRectToVisible(r);
> }
>
> logArea er et JTextArea-objekt og jScrollPane2 er det panel, som
indeholder
> JTextArea-objektet. Alt efter størrelsen på dit TextArea kan du ændre *11
i
> setLocation-metodekaldet.
>
> Håber du kan få det til at virke, eller så spørger du bare
>
> /Lars
>
> "Dahl" <[NOSPAM]jimmichr@hotmail.com[NOSPAM]> skrev i en meddelelse
> news:9qug5h$254d$1@news.cybercity.dk...
> > Hejsa og tak for svaret
> >
> > Jeg har prøvet af implementere dit forslag (med få ændringer) men kan
ikke
> > få det til at virke. Koden kan ses her:
> >
> > public void setMainControllerText(String text) {
> > mainControllerTextArea.setText(text);
> > int length = mainControllerTextArea.getColumns();
> > Point p = new Point(0,length);
> > JViewport vp = mainControllerScrollPane.getViewport();
> > vp.setViewPosition(vp.toViewCoordinates(p));
> > }
> >
> > mainControllerTextArea er JTextArea objected og mainControllerScrollPane
> er
> > JScrollPane objected.
> >
> > Med den her kode er det statig kun det øverste af teksten der vises og
> altså
> > ikke den nederste del som er ønsket.
> >
> > Kan du (eller andre) se hvad der er galt eller komme på andre løsninger?
> >
> > Mvh
> > Dahl
> >
> > "Jon Rønningen" <froland@start.no> wrote in message
> > news:9qu42n$r6b$1@troll.powertech.no...
> > > Hei,
> > >
> > > Koden nedenfor har jeg ikke testet og derfor vet jeg ikke om den
virker,
> > men
> > > det kanskje slik man kan sette JScrollPanen til å vise det nederste på
> en
> > > JTextArea:
> > >
> > > (...)
> > > int length = JTextArea.getColumns();
> > > Point p = new Point(0, getColumns());
> > > ViewPort vport = JScrollPane.getViewPort();
> > > vport.setViewPosition(toViewCoordinates(p));
> > > (...)
> > >
> > > (Java 1.4)
> > >
> > >
> > > Hilsen
> > > Jon Rønningen
> > >
> > >
> > > Dahl <[NOSPAM]jimmichr@hotmail.com[NOSPAM]> skrev i
> > > news:9qsjcc$2vtt$1@news.cybercity.dk
> > > > Hej,
> > > >
> > > > Jeg har et JScrollPane object der indeholder et JTextArea object som
> > hele
> > > > tiden tilføjes ny test.
> > > >
> > > > Hvordan sikre jeg mig at det altid er den nyeste tekst i JTextAreaet
> der
> > > > vises (får JScrollPane't til at scrolle helt ned)?
> > > >
> > > > Tak
> > > > Dahl
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Anders S. Clausen (22-10-2001)
Kommentar
Fra : Anders S. Clausen


Dato : 22-10-01 12:37

Hejsa

Hvad med at proeve dette:


JTextArea theTextArea = new JTextArea();
int theLength = theTextArea.getText().length();
theTextArea.setCaretPosition(theLength);

Håber det virker.

Venlig hilsen Anders

Anders.clausen@btinternet.com
Anders.s.clausen@britishairways.com



Dahl (22-10-2001)
Kommentar
Fra : Dahl


Dato : 22-10-01 22:46

Yeps det funker også fint og er til at forstå (o:

Tak
Dahl

"Anders S. Clausen" <anders.clausen@btinternet.com> wrote in message
news:9r1039$hsg$1@uranium.btinternet.com...
> Hejsa
>
> Hvad med at proeve dette:
>
>
> JTextArea theTextArea = new JTextArea();
> int theLength = theTextArea.getText().length();
> theTextArea.setCaretPosition(theLength);
>
> Håber det virker.
>
> Venlig hilsen Anders
>
> Anders.clausen@btinternet.com
> Anders.s.clausen@britishairways.com
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste