Salve gente :)
In questa giornata cupa ho deciso di continuare ad esaurirmi nella creazione del mio piccolo notepad scritto in Java.
Ormai mancano poche cose, una delle quali è la funzione cerca. Ieri mi sono messo a reperire informazioni in rete e sono riuscito ad ottenere un piccolo risultato: se cerco la parola quest'ultima viene evidenziata. Bene, funziona, però se ho un'altra parola nel testo non viene cercata perché la ricerca si ferma solo alla prima parola. Mi spiego meglio. Mettiamo che ho un testo, questo testo esattamente:
C'era una volta una casa era casa era casa era casa.
Ok, ora se cerco casa, il programmi mi evidenzia la prima "casa". Ora, siccome nel testo sono presenti altre 3 parole casa, se clicco su cerca, l'evidenziazione dovrebbe spostarsi sulle altre ma questo ovviamente non avviene. Ecco, il quesito è proprio questo: come si fa a creare quello che in un programma prende il nome di TROVA SUCCESSIVO?
Per realizzare la funzione cerca ho fatto così:
Dove ta è la TextArea con dentro il testo e find è la textarea dove inserire la parola da cercare.
Esattamente di cosa avrei bisogno? Non mi viene niente in mente :(
In questa giornata cupa ho deciso di continuare ad esaurirmi nella creazione del mio piccolo notepad scritto in Java.
Ormai mancano poche cose, una delle quali è la funzione cerca. Ieri mi sono messo a reperire informazioni in rete e sono riuscito ad ottenere un piccolo risultato: se cerco la parola quest'ultima viene evidenziata. Bene, funziona, però se ho un'altra parola nel testo non viene cercata perché la ricerca si ferma solo alla prima parola. Mi spiego meglio. Mettiamo che ho un testo, questo testo esattamente:
C'era una volta una casa era casa era casa era casa.
Ok, ora se cerco casa, il programmi mi evidenzia la prima "casa". Ora, siccome nel testo sono presenti altre 3 parole casa, se clicco su cerca, l'evidenziazione dovrebbe spostarsi sulle altre ma questo ovviamente non avviene. Ecco, il quesito è proprio questo: come si fa a creare quello che in un programma prende il nome di TROVA SUCCESSIVO?
Per realizzare la funzione cerca ho fatto così:
Codice:
if (e.getSource() == cerca) {
String prendiTesto = ta.getText();
String cercaParola = find.getText();
int trovato = prendiTesto.indexOf(cercaParola);
cercaParola.length();
ta.grabFocus(); // attiva l'evidenziazione
ta.select(trovato, trovato + cercaParola.length()); // inizio e fine
// dell'evidenziazione
ta.setSelectedTextColor(Color.BLACK); // colore INTERNO della
// scritta evidenziata
Esattamente di cosa avrei bisogno? Non mi viene niente in mente :(