I want to copy the value of a jTextField - TXTFLD1 to another jTextField -TXTFLD2 when the value at TXTFLD1 changes.
I choose propertychangelistener because i cannot detect when the value at TXTFLD1 is changed, Because it is changed by some external code which i cannot modify now.
The test code is as follows :
public class TxtFldSync extends JFrame {
private JButton BTN1 = null;
private JTextField TXTFLD1 = null;
private JTextField TXTFLD2 = null;
public static void main(String[] args) {
TxtFldSync thisClass = new TxtFldSync();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
public TxtFldSync() {
super();
this.setSize(300, 200);
BTN1 = new JButton();
BTN1.setBounds(new Rectangle(178, 38, 67, 17));
TXTFLD1 = new JTextField();
TXTFLD1.setBounds(new Rectangle(32, 42, 83, 20));
TXTFLD2 = new JTextField();
TXTFLD2.setBounds(new Rectangle(30, 78, 83, 20));
//listeners
TXTFLD1.addPropertyChangeListener("value", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent arg0) {
TXTFLD2.setText(TXTFLD1.getText()+"set by change listener");
//this doesnot work why ?
}
});
BTN1.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
TXTFLD1.setText("Action Performed");
//i what to set same value to TXTFLD2 using property change listener
}
});
this.setContentPane(new Container());
this.getContentPane().add(BTN1);
this.getContentPane().add(TXTFLD1);
this.getContentPane().add(TXTFLD2);
}
}
Why the property change listener is not working.
What are the other alternatives solution for this problem?