Saber se houve movimento na JTextArea

Olá a todos,

gostaria de fazer o seguinte:

private void atualizaJTextArea(){
if( HOUVE ALGUMA MUDANÇA )
programaSalvo = false;
}

Tipo uma rotina que ficasse atualizando toda hora, e de forma idependente, para saber se um JTextArea sofreu alguma remoção/inserção de caracteres.

Olá, batistafilho!
Tudo bem?

Cara, implemente um evento para o seu JTextArea. O evento em questão é o KeyListener.
Você pode fazer algo assim:

JTextArea textArea = new JTextArea( 10, 10 );
textArea.addKeyListener ( new TextAreaListener() );

private class TextAreaListener implements KeyListener {

   public void keyTyped(KeyEvent e) {}
   public void keyReleased(KeyEvent e) {}

   public void keyPressed(KeyEvent e) {
      JOptionPane.showMessageDialog( null , "Apertou a tecla " + e.getKeyChar() + "!");
   }
}

Testa aí, e nos dê o reply!
Abraços!

Melhor que o keylistener é implementar um DocumentListener.

seuTextArea.getDocument().addDocumentListener().

Lembre-se que mudanças no JTextArea podem ser feitas sem que o usuário pressione necessariamente uma tecla do teclado (ele pode recortar ou colar um texto com o mouse, por exemplo). O DocumentListener é disparado quando o documento do JTextArea é alterado, não importando a partir de qual dispositivo.

Valeu, Nicolas!
Funcionou certo e isso era mais um detalhe do Java que eu não conhecia. Vou aproveitar e irei atrás dos Listeners que eu ainda não conheço.

[quote=batistafilho]Valeu, Nicolas!
Funcionou certo e isso era mais um detalhe do Java que eu não conhecia. Vou aproveitar e irei atrás dos Listeners que eu ainda não conheço.[/quote]

Você fez com KeyListener ou com o DocumentListener?

batistafilho,

Siga a dica do Vini. Eu não considerei que poderíamos colar ou recortar dados da JTextArea. Se realizarmos tais operações, o uso de um DocumentListener fica muito mais eficiente!

[quote=Nicolas Fernandes]batistafilho,

Siga a dica do Vini. Eu não considerei que poderíamos colar ou recortar dados da JTextArea. Se realizarmos tais operações, o uso de um DocumentListener fica muito mais eficiente![/quote]

Eu aprendi isso da pior maneira possível. Meu usuário recortava e colava com o mouse, e reclamou que a janela não estava avisando para salvar. D:
E claro, que ele havia perdido um monte de informação importante.