Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Tech
 
[JAVA] Swing, problema
Clicca QUI per vedere il messaggio nel forum
PuDDu
Salve, volevo sapere se qualcuno si è destreggiato con la API grafica di Java, Swing.

So che nel corso di java non è mai stato affrontato (purtroppo) ma io mi sto dilettando ad imparare un po' di programmazione in java con interfaccia grafica, appunto con Swing.

Il mio problema è questo:

sto creando un piccolo e semplice editor testuale, che ricalchi le funzioni di notepad, ma scritto in Java.
Per farlo uso un po' di compenenti di Swing, come le JMenuBar e le JTextComponent (JTextArea, JEditorPane) ma non funzionano alcune cose.

Se uso una JTextArea per visualizzare il testo, posso fare diverse cose carine, come formattarlo per farlo andare a capo alla fine della finestra (come la funzione "a capo automatico" di Notepad, per intenderci) ma siccome JTextArea "manipola" solo stringhe, l'unico modo per aprire file di testo con il mio programmino è quello di "appendere" le stringhe con un filestream una dietro l'altra e printarle sulla TextArea, con lo spiacevole effetto che una volta aperto un testo la barretta lampeggiante dell'inserimento carattere -> | (non mi ricordo come si chiama, spero capiate a cosa mi riferisco :D) si trova IN FONDO al documento e quindi il documento stesso e visualizzato nella finestra dal fondo.

Ho provato ad usare allora JEditorPane, component che permette di visualizzare oltre a plaintext anche HTML e RTF e che manipola sia string che "page" e che una volta aperto un file lo visualizza come si deve, ma non ha le funzioni di a capo automatico, cosa alquanto sgradevole.

La mia domanda è questa: qualcuno sa come potrei fare tornare la barretta a inizio documento ed evitare di "appendere" le stringhe una dietro l'altra per aprire un file con JTextArea?
Oppure mettere l'a capo automatico a JEditorPane?

Grazie, se volete vi mando anche i sorgenti per spiegarvi in dettaglio.

Ciao

aesse
usando JTextarea puoi sia appendere stringhe alla textarea, sia leggere tutto il tuo file, memorizzarlo in una stringa, e aggiungere la stringona alla textarea (dovrebbe esserci un setText() derivato da TextComponent o qualcosa del genere).
Per spostare il cursore secondo me potresti tentare di giocare con (vado a memoria quindi controlla sulla documentazione) con setSelectionStart() e setSelectionEnd(), oppure usando la classe Caret (setCaretPosition() ).
p.s. prendi tutto ciò che dico con le pinze..fino a qualche mese fa non sapevo neanche cosa fosse la programmazione ad oggetti!

PuDDu
Grazie mille! Ho risolto usando setCaretPosition.

Ora però ho un altro dubbio:
c'è un modo di "cancellare" (repaint sarebbe più adatto) una JTextArea?
Ovvero, quando apro un nuovo file il mio algoritmo "riappende" il testo a quello già presente nella finestra.

So che ci deve essere, ma non so dove.

0m4r
puoi fare
code:
jta.setText(""); jta.setText("asasdfkj uyhg uhfkh gfkudhgku sdhdhf ");

cioè, prima la svuoti e poi ci piazzi il testo nuovo...non è molto elegante ma funziona. (Spero di avere capito qual è il problema)

P.S.
link utili:
http://forum.java.sun.com
http://java.sun.com/docs/books/tuto...iswing/TOC.html

0m4r
Off-Topic:

visto che usate swing non è che mi dareste una mano qui: http://www.dsy.it/forum/showthread.php?s=&threadid=3870

PuDDu
Grazie Omar, ora funza tutto!

Anche io appena avrò finito di implementare l'apertura-salvataggio dei documenti e altre cosette, mi dovrò smazzare il printing, ma per ora so poco o nulla.

morf
... mi sento tanto ignorante ...

PuDDu
JAVA :rulez:

Morf :asd:

morf
Off-Topic:
io in verità java l'ho fatto un po' per l'esame di Informatica Generale del primo semestre ... ma leggere tutto questo mi fa capire che ho fatto davvero il minimo :roll:

Quartermaster
:? saimo in due morf...:cry:

ToBlEr:OnE
Morf, hai passato l'esame con un over 20. La cosa ti procura solo stima ed invidia.
Vai in pace...

webnoise
anche perche' il cammino e' lungo.... l'anno prox vedrai che belle sorprese :D

Rifinitore
che tipo di sorprese ?

0m4r
già, che sorprese?

webnoise
che il secondo anno e' molto impegnativo IN TUTTI I SENSI... a buon intenditor poche parole.... :evil: :)

0m4r
Originally posted by webnoise
che il secondo anno e' molto impegnativo IN TUTTI I SENSI... a buon intenditor poche parole.... :evil: :)


non dirlo a me che sto finendo il terzo (gne gne gne gne!)

Lunik
Off-Topic:
Siete OT caxxo!! :cagatemi:

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate