PDA

Visualizza la versione completa : [JAVA] JTextArea Listener


cat82
11-01-2006, 19:00
Salve a tutti,
devo costruire un programmino che data una JTextArea ogni volta che digito un carattere all'interno di essa mi conta il numero di caratteri totali (compresi spazie e caratteri speciali) e me lo visualizza in una JLabel.
Qualcuno puņ darmi una mano per cortesia?
Grazie

anx721
11-01-2006, 22:57
getDocument() ti restituisce il document dell'area di testo a cui aggiungere un DocumentListener con addDocumentListener; il DocumentListener ricevera gli eventi di modifica del testo e deve implementare i tre metodi:

void changedUpdate(DocumentEvent e)
invocato quando cambiano attributi del testo (tipo colore, font, stile, ecc)
void insertUpdate(DocumentEvent e)
invocato quando avviene un inserimento di testo
void removeUpdate(DocumentEvent e)
invocato quando avviene una cancellazione di testo


a te basta implementare tutti e tre i metodi in modo che invochino getLength() sul document per conoscere la lunnghezza del testo.

cat82
12-01-2006, 11:41
Grazie mille.
Visto che ci sono pongo altre due domande:
1)come faccio a trovare nelle docs api java i listener di tutti gli oggetti;
2)come posso fare a impostare nella mia JTextArea un limite massimo di n-lettere (non parole) per riga in modo tale che mi vada a capo anche se nn ho terminato la parola quando digito.
Attualmente quando digito se nn premo invio nn mi va a capo riga.
Grazie :confused: :ciauz:

cat82
12-01-2006, 16:03
nothing else? :confused:

LeleFT
12-01-2006, 19:30
Alla prima domanda ti rispondo io:

Per ottenere tutti i Listener, č sufficiente che tu vada a guardare ciņ che contengono i sottopackage event del package di tuo interesse.

Ad esempio, tutti i listener di AWT li trovi su:
java.sun.com/j2se/1.4.2/docs/api/java/awt/event/

Tutti i listener di Swing li trovi su:
java.sun.com/j2se/1.4.2/docs/api/javax/swing/event/

Prova a partire da qui:
java.sun.com/j2se/1.4.2/docs/api/ (http://java.sun.com/j2se/1.4.2/docs/api/)

e sulla parte sinistra hai tutto l'albero delle API, da cui scegliere il package desiderato.


Ciao. :ciauz:

anx721
12-01-2006, 22:55
Per la seconda domanda prova ad usare il costruttore JTextArea(int s, int columns) per la text area, poi prova ad invocare setLineWrap(true) sulla text area, e se non funziona ancora prova a anche ad invocare setWrapStyleWord(true)

cat82
13-01-2006, 10:41
:fighet: Tutto OK:yuppi:

Grazie mille LeleFT. :ciauz:

Grazie mille anx721 :ciauz:

Loading