Caso queira usá-la em outro lugar ou evento de outros botões, terá que colocá-la no cabeçalho da classe…
public class JFColorizer extends javax.swing.JFrame {
...
ArrayList<String>cores = new ArrayList<String>();
Senão pode deixá-la no evento do botão mesmo…
.
Na linha 7 é a declaração da variável do tipo texto que terá o resultado final das concatenações…
Ex:
Na linha 8 e 9 é a declaração das variáveis numéricas de tipo inteiro que representara respectivamente os endereço das cores na coleção ArrayList e endereço das letras no texto original…
Ex:
int indexTexto = 0;
int indexCor = 0;
Na linha 10 é a parte da condição para a repetição de concatenação das cores com as letras… ou seja, onde ira verificar se ainda possui letras a serem concatenadas com as Strings de cores…
Ex:
for(;indexTexto<original.length();indexTexto++,indexCor++)//Esse é um laço de repetição For, também poderia ser um while
indexTexto<original.length() = enquanto o index for menor que o tamanho total do texto continuar a concatenar…
indexTexto++,indexCor++ = incrementa 1 nas variáveis de index a cada rodada da repetição… Seria como “indexCor = indexCor + 1”.
Na linha 11 é a condição que verifica se existe mais cores para serem concatenadas…
Ex:
if(cores.size()>indexCor)//Se o index for menor que o total de cores na coleção...
Na linha 12 é onde ocorre a concatenação…
Ex:
resultado += cores.get(indexCor) + original.charAt(indexTexto);//recupera a cor no endereço "indexCor" e concatena com a letra no endereço "indexTexto" e por fim concatena com a String resultado
A linha 12 e a linha 16 iram ocorrer enquanto houver letras a serem concatenadas…
Na linha 13 é no caso se não houver mais cores a serem concatenadas com as letras… então na linha 15 a variável indexCor é zerada e continua a concatenar novamente a partir da primeira cor na coleção…
.
Dessa maneira podera adicionar novas cores quando quiser e não se preocupar com o tamanho do texto digitado pelo usuario…
Sugiro colocar o resultado num JTextArea, pois dependendo do texto digitado pelo usuário a String resultado ficara realmente enorme…
Coloquei alguns exemplos em códigos por que realmente é dificil explicar em pseudo-código…