Avatar billede bumle90 Nybegynder
11. december 2001 - 22:36 Der er 13 kommentarer og
1 løsning

Scroll

Hej. Jeg har et textarea som bliver opdateret ofte. Efter et stykke tid er der ikke plads til mere tekst i dette area men man skal dog stadig kunne scrolle op og se hvad der har stået indtil videre, og den skal stadig tilføje tekst til bunden af teksareat. Mit spørgsmål er så hvordan jeg rent faktisk får tilføjet en sådan scroller til mit textarea. Tak på forhånd
Avatar billede greybeard Nybegynder
11. december 2001 - 22:50 #1
Du skal lægge dit textarea ind i en JScrollPane

Avatar billede bumle90 Nybegynder
11. december 2001 - 22:55 #2
Hvordan gør jeg det?
Avatar billede greybeard Nybegynder
11. december 2001 - 22:59 #3
JScrollPane jsp = new JScrollPane(textArea);

og så
xxx.add(jsp);
istedet for
xxx.add(textArea);
Avatar billede bumle90 Nybegynder
11. december 2001 - 23:02 #4
Ja det har jeg gjort, men der kommer ingen scrollbar frem. Den gør bare lissom før.
Skal man lave noget med setprefferedsize eller setViewsize eller noget i den retning?
Avatar billede greybeard Nybegynder
11. december 2001 - 23:07 #5
Scrollbaren kommer først når der er brug for den. Dvs nå din tekst ikke kan være i vinduet.
Avatar billede bumle90 Nybegynder
11. december 2001 - 23:10 #6
Nej den gør ikke...jeg har testet det...den kommer ik
Avatar billede bumle90 Nybegynder
11. december 2001 - 23:18 #7
her er hvad jeg har skrevet

JPanel test=new JPanel();
test.setLayout(new BorderLayout());
traekliste=new JTextArea();
traekliste.setEnabled(false);
traekliste.setMaximumSize(new Dimension(50,200));
traekliste.setPreferredSize(new Dimension(50,200));
JScrollPane scroll=new JScrollPane(traekliste);
test.add(scroll,BorderLayout.WEST);
getContentPane().add(test);
Avatar billede greybeard Nybegynder
11. december 2001 - 23:36 #8
Jeg ved ikke,hvad der går galt.

Det virker her, men ned et java.awt.TextArea istedet:

import javax.swing.*;
import java.awt.*;

public class ScrollTest {
   
    JFrame frame ;
    TextArea text;
    JScrollPane jsp;
   
    ScrollTest() {
        frame = new JFrame(\"ScrollTest\");
        text = new TextArea();
        text.setSize(50,200);
        jsp = new JScrollPane(text);
        frame.getContentPane().add(jsp);
           
    }
    public static void main( String[] argv ){
        ScrollTest st = new ScrollTest();
        st.frame.show();
    }
}

du skal lige forstørre vinduet først
Avatar billede bumle90 Nybegynder
12. december 2001 - 00:14 #9
Hmmm jeg fatter det sq ikke lige helt.
Jeg har prøvet at copy/paste min egen kode ind i en ny simpel klasse som gør lissom dit eksempel. Dvs. at jeg adder et textarea embedded i et JScrollPane på en frame. Og det virker faktisk fint.
Men så snart jeg gør nøjagtig det samme der hvor jeg rent faktisk skal bruge det, så virker det ik.
Har det noget at gøre med at der hvor jeg il putte JScrollPane er på et panel der ligger på en frame?
Mit textarea er af en eller anden grund ligeglad med setSize....det breder sig bare ud på al den plads der er tilbage når jeg bruger setsize, og scrollbar virker ik. Hvis jeg bruger setpreferredsize så bliver jtextareaet den størrelse jeg har angivet, men der er ingen scrollbar. Burde den ikke være der fra starten?
Avatar billede greybeard Nybegynder
12. december 2001 - 00:34 #10
Prøv med

traekliste.setdSize(new Dimension(50,200));

Hvis du vil have Scrolbar\'en synlig hele tiden så:

jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );
Avatar billede greybeard Nybegynder
12. december 2001 - 00:35 #11
Sætternissen

traekliste.setSize(new Dimension(50,200));
Avatar billede sajbar Nybegynder
12. december 2001 - 19:58 #12
du kan også få den til at blive vist når det er nødvendigt med ved at bruge
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED  );
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );


Avatar billede logical Nybegynder
13. december 2001 - 00:50 #13
Prøv at kigge efter igen.. Du bruger et TextArea, altså en gammel AWT komponent.
Der kan du ikke lægge et JScrollPane omkring (En Swing container), fordi en Swing komponent er letvægts mens en AWT ikke er. Det korte og det lange. Scrollbarene er der, men \"nedenunder\" dit tekstfelt, så du kan ikke se dem.

Hvordan får man så scrollbar på når man bruger AWT komponenter, spørger du så...?

Aner det desværre ikke.
Avatar billede sajbar Nybegynder
13. december 2001 - 10:04 #14
her er et link til hvordan du opretter et scrollpane under AWT...
http://java.sun.com/j2se/1.3/docs/api/java/awt/ScrollPane.html

//Sajbar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester