View Full Version : [Java] JTextArea
slowguitar
14-03-2005, 13:56
Ciao
qualcuno sa come riuscire ad ottenere il testo di una riga di una JTextArea?
pensavo ci fosse un metodo nelle API del jdk 1.4.2 non ho trovato nulla di utile..:confused:
prova cosė:
Element e = textArea.getDocument().getDefaultRootElement();
int c = e.getElementCount();
for (int i=0; i<c; i++) {
Element element = e.getElement(i);
int start = element.getStartOffset();
int end = element.getEndOffset();
try
{
String line = textArea.getText(start, end-start);
}
catch (BadLocationException ble)
{
System.err.println(ble.getMessage());
}
}
slowguitar
14-03-2005, 17:57
Grazie Mille kingv
stasera quando vado a casa provo.
ciao
slowguitar
22-03-2005, 08:33
ci ho provato...pero' avevo omesso una cosa..
la mia jtextarea ha un
insets(70,70,70,70)
lineWrap(true)
in maniera da "formattare" dei margini
dovrei ottenere la riga che vedo a "video"..
il modo da te suggerito (e ti ringrazio nuovamente per il suggerimento) estrae le righe separate diciamo...da uno "\n"
acch non so piu' cosa fare
:muro: :muro: :muro:
Originariamente inviato da slowguitar
il modo da te suggerito (e ti ringrazio nuovamente per il suggerimento) estrae le righe separate diciamo...da uno "\n"
:confused:
non capisco le linee riesce a separartele o ne tira su una sola?
il '\n' lo puoi togliere in vari modi.
slowguitar
22-03-2005, 12:22
sono stato un po' oscuro...ed ho anche sbagliato a scrivere il codice!
ho una JTextArea:
String stringa = "molto testo"
JTextArea jta = new JTextArea();
jta.setMargin(new Insets(70,70,70,70));
jta.setLineWrap(true); // se non lo metto nonostante i margini va oltre
jta.setText(stringa);
praticamente avendo settato i margini di jta, quando inserisco il testo
alla jtextarea la stringa va a capo
("costretta" dal setLineWrap e dal setMargin)anche quando non ha al suo
interno un "\n" (cosa di cui necessito).
Io dovrei, per esigenze, calcolare il numero di linee che avro'
(e che vedo) sulla jta, il calcolo con il metodo che mi avevi suggerito
ed anche il getLineCount() (ho fatto qualche prova) tiene conto degli
\n.
esempio:
String stringa = "Non riesco a risolvere il problema";
| |Non riesco a risolvere| |
| | il problema | |
| | | |
margine corpo margine
dovrei calcolare quindi 2 linee.
non so se sono stato piu' chiaro...
Originariamente inviato da slowguitar
non so se sono stato piu' chiaro...
penso di aver capito, tu vuoi considerare come linea solo quelle inserite dall'utente mentre ti vengono considerate anche quelle derivanti dal line wrap. ho capito bene?
slowguitar
22-03-2005, 15:56
in realta' e' il contrario,
devo considerare (conteggiare e prendere)
quelle derivanti dal line wrap
e questo purtroppo con il metodo che mi avevi suggerito
ed anche il getLineCount() non avviene
non assolutamente idea di come fare:muro:
p.s. la mi jtextarea e' un anteprima di stampa che riempo prendendo il testo da un db.
slowguitar
02-05-2005, 12:49
king!!!!
non so se ti interessa, ma qui http://www.javaalmanac.com/egs/javax.swing.text/GetWrappedLines.html ho trovato la soluzione.
:) :)
king!!!!
non so se ti interessa, ma qui http://www.javaalmanac.com/egs/javax.swing.text/GetWrappedLines.html ho trovato la soluzione.
:) :)
buono a sapersi ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.