PDA

Visualizza la versione completa : (java) Contare le linee in un jtextPane


abcd1000
10-04-2004, 20:51
Ho un componente di tipo jtextpane che non è inserito in uno jscrollpane

Voglio determinare a che riga si trova una determinata parola, come posso fare?

Ade sempio, se l'utente scrive nel jtextpane la seguente cosa:

<------------> (ipotiziamo che questa sia larghezza del jtextpane)

sto scrivendo (<- l'utente non ha premuto invio)
una lista (<- l'utente non ha premuto invio)
delle cose (<- l'utente non ha premuto invio)
datoche

e vuole sapere a che linea si trova la paroal "delle", devo dire che si trova alla riga 3
Notare che ad ogni fine riga non c'è un carattere di ritorno a capo, il testo va a capo perchè a raggiunto il bordo del jtextpane.
Il jtextpane è inserito in un jframe che può essere ridimensionato dall'utente.

abcd1000
12-04-2004, 13:42
qualche idea?

patrix03
12-04-2004, 14:45
così come hai esposto non mi viene in mente alcuna soluzione... non ti è proprio possibile definire le colonne di ogni riga?
Anche perchè , come tu hai detto, se è ridimensionabile runtime.. non avrebbe molto senso recuperare a che riga si trova una parola vista la variabilità della stessa riga in base alla dimensione o no?

abcd1000
14-04-2004, 13:15
potrei fare così:
catturo tutto il testo dall'editor
faccio indexOf della parola ricercata
sposto il caret alla posizione ritornata da indexOf
calcolo la distanza tra il carete ed il bordo superiore dell'editor
divido questa distanza per l'altezza di una riga
ottengo il numero di righe

Ecco vorrei fare una cosa del genere ma senza dover spostare il caret

suggerimenti?

abcd1000
15-04-2004, 11:56
forse potrebbe essere utile la classe javax.swing.text.ParagraphView
qualcuno l'ha mai usata?

Loading