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.