Red de conocimientos turísticos - Información de alquiler - Acerca de Swing agregando addTextListener

Acerca de Swing agregando addTextListener

Para la clase JTextField en Swing, el proceso de implementación del monitoreo es relativamente complicado. No hay ningún TextListener configurado en JTextField, pero la tarea de monitoreo de texto se coloca en otra interfaz, Documento. Por lo tanto, primero debe solicitar un objeto de interfaz de documento para el objeto JTextField, y el método utilizado es JTextField1.getDocument() (el nombre del objeto JTextField proporcionado en este artículo es JTextField1). Después de obtener el documento, puede usar addDocumentListener() para obtener una interfaz de escucha similar a TextListener. La declaración completa de DocumentListener es la siguiente:

interfaz DocumentListener extiende EventListener

Está definida en el paquete java.swing.event.DocumentListener, que contiene tres métodos:

public void changeUpdate(DocumentEvent e): monitorea los cambios en los atributos de texto;

public void insertUpdate(DocumentEvent e): monitorea los eventos de inserción de contenido de texto

public void removeUpdate( DocumentEvent e): escucha eventos de eliminación de contenido de texto.

Al igual que con el componente TextField, después de definir una nueva clase (Swing_OnValueChanged en este artículo), agregar instrucciones y escribir código, puede lograr las funciones requeridas.

Implementación de la programación

El siguiente es el código Java que implementa las partes clave de la función de monitoreo. El código completo se compila y ejecuta en la máquina virtual Java.

Ingrese, elimine o seleccione y modifique en los dos cuadros de edición Siempre que el contenido del cuadro de texto cambie exactamente, se activará el evento correspondiente, generando así una salida (en la interfaz de caracteres). .

public class JFrame1 extends JFrame {

public JFrame1() { //Generar interfaz gráfica

...

//Salir Definición de evento de botón

btnAction exitAction = new btnAction();

JButton1.addActionListener(exitAction);

//Definir la escucha de texto del componente TextField

p>

textField1.addTextListener(new AWT_OnValueChanged());

//Definir el detector de texto del componente JTextField

JTextField1.getDocument().addDocumentListener ( new Swing_OnValueChanged ())

}

//Definir nuevo AWT_OnValue según la interfaz TextListener

La clase cambiada AWT_OnValueChanged implementa TextListener {

public void textValueChanged(TextEvent e ) { //Cambios de salida y resultados

System.out.println("Text Changed:" + textField1.getText()

}

}

//Definir la nueva clase Swing_OnValueChanged basada en la interfaz DocumentListener

class Swing_OnValueChanged implementa DocumentListener { //Cambios de salida y resultados

public void changeUpdate(DocumentEvent e) {

p>

System.out.println(“Atributo cambiado” + e); void insertUpdate(DocumentEvent e) { //Cambios de salida y resultados

System.out.println("Texto insertado:" + textField1.getText()

}

public void removeUpdate(DocumentEvent e) { //Cambios de salida y resultado

System.out.println("Texto eliminado:" + textField1.getText()

}

}

//Definir una nueva clase para implementar el monitoreo de tiempo del botón Salir

class btnAction implements ActionListener { //Recibir eventos

public void actionPerformed(evento ActionEvent) {

Objeto objeto = event.getSource()

if (objeto == JButton1) {

JButton1_actionPerformed (evento);

}

}

}

//Evento del botón de salida

void JButton1_actionPerformed( java.awt.event. evento ActionEvent) {//Salir del programa

System.exit(0); p>Resumen

De hecho, además de los cuadros de texto (TextField y JTextField), siempre que sea un área de edición de texto, incluidos TextArea, JTextArea, JTextPane, etc., puede utilizar el método anterior. implementar el evento OnValueChanged() para lograr la edición de texto. Monitoreo del contenido regional.

El código anterior se compila y pasa en el entorno JDK 1.2