View Full Version : [Java] JTextArea in JScrollPane
divincodin
20-04-2009, 18:30
Ciao,ho creato una JTextArea e siccome spesso il testo che deve visualizzare è abbastanza lungo,ho provato ad inserirla in una JScrollPane...ma non spunta nessuna barra.Ecco il mio codice:
PannelloComme=new JPanel();
TextArea=new JTextArea();
TextArea.setPreferredSize(new Dimension(880,50));
TextArea.setEditable(false);
Font font=new Font("Times New Roman",Font.BOLD,14);
TextArea.setFont(font);
JScrollPane TextAreaScrollPane=new JScrollPane(TextArea,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
...
...
...
PannelloComme.add(TextAreaScrollPane);
Ho consultato molto materiale ed in tutti i postiho visto che si imposta così...
Dov'è che sbaglio?
Ciao
Non impostare la dimensione preferita dell'area di testo.
divincodin
20-04-2009, 19:53
Avevo già provato,ma non funziona ugualmente.Anzi,togliendo le dimensioni alla JTextArea,prima che i commenti vengano caricati,essa si vede come un puntino...mentre invece io voglio che abbia una dimensione fissa.
Ho anche provato a dare le dimensioni al JScrollPane,ma non cambia nulla.
Se il contenuto ha una dimensione preferita tale dimensione diventa anche la massima estensione del JViewport usato dal JScrollPane. Quindi niente dimensione preferita al contenuto.
La dimensione prefererità va specificata sul JScrollPane.
divincodin
20-04-2009, 20:29
La dimensione prefererità va specificata sul JScrollPane.
Ho provato anche così...ma quella maledetta barra non va...il testo lo mette tutto su un'unica riga,così come lo legge dal file.txt e di conseguenza viene visualizzato soltanto parte del commento
Prova:
PannelloComme=new JPanel(new BorderLayout());
o
PannelloComme=new JPanel(new GridLayout(1, 1));
divincodin
20-04-2009, 21:04
PannelloComme non posso modificarlo...ho già impostato un FlowLayout perchè oltre alla JTextarea,al suo interno ho inserito un altro pannello con 2 bottoni
Ma parliamo della barra orizzontale?
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
Se sì, non la vedi perchè con quella costante hai detto di non volerla.
Prova a dare la dimensione preferita al JScrollPane (FlowLayout la deve rispettare) e a dire all'area di testo di spezzare le linee:
textArea.setLineWrap(true);
Ottieni l'effetto che desideri?
divincodin
20-04-2009, 21:40
Perfetto,con textArea.setLineWrap(true); adesso lo scroll verticale funziona.
Sconoscevo l'esistenza di questa funzione :rolleyes:
Ancora grazie per la tua infinite risorse e l'aiuto :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.