¿Cómo puedo recuperar el evento en un JLabel cuando cambio el texto en el interior?JLabel al cambiar el evento de texto
Tengo un JLabel y cuando cambie el texto dentro tengo que actualizar otro campo.
¿Cómo puedo recuperar el evento en un JLabel cuando cambio el texto en el interior?JLabel al cambiar el evento de texto
Tengo un JLabel y cuando cambie el texto dentro tengo que actualizar otro campo.
En mi humilde opinión no puede obtener un evento en JLabels textchange. Sin embargo, se puede utilizar un JTextField en lugar de un JLabel:
private JTextField textFieldLabel = new JTextField();
textFieldLabel.setEditable(false);
textFieldLabel.setOpaque(true);
textFieldLabel.setBorder(null);
textFieldLabel.getDocument().addDocumentListener(new DocumentListener() {
public void removeUpdate(DocumentEvent e) {
System.out.println("removeUpdate");
}
public void insertUpdate(DocumentEvent e) {
System.out.println("insertUpdate");
}
public void changedUpdate(DocumentEvent e) {
System.out.println("changedUpdate");
}
});
Nota: Este evento se activa sin importar cómo el texto se cambia; programáticamente a través de "setText()" en el TextField o (si no lo hace "setEditable (false)") a través del portapapeles cortar/pegar, o por el usuario escribiendo directamente en el campo en la interfaz de usuario.
Las líneas:
textFieldLabel.setEditable(false);
textFieldLabel.setOpaque(true);
textFieldLabel.setBorder(null);
se utilizan para hacer el JTextField parezca un JLabel.
esta respuesta es incorrecta (la parte relacionada con los oyentes disponibles para JLabel) – kleopatra
techically, la respuesta es utilizar un PropertyChangeListener y escuchar a los cambios de la propiedad "Texto", algo así como
PropertyChangeListener l = new PropertyChangeListener() {
public void propertyChanged(PropertyChangeEvent e) {
// do stuff here
}
};
label.addPropertyChangeListener("text", l);
no
por lo que técnicamente: podría valer la pena volver a visitar el diseño general y se unen a origen original que activó el cambio en la etiqueta
¿Sería mejor actualizar ambos campos a la vez, de cualquier evento que haya causado el cambio de los primeros? –
Pongo un texto i jlabel1 con un clic en un botón y dependiendo de lo que he elegido tengo que poner otro texto en un jLabel2 – Giovanni