this is a really simple code in which text on a button is copied to a TextField. The code works fine but the TextField is not updating instantly on clicking the button. It updates only after i click on the TextField or when i drag the form not on pressing the button instantly. why is this happening,this behavior is unexpected. i am testing this code on a nokia 501 emulator which supports LWUIT.
a = new Form("CALCULATOR")
final TextArea data = new TextArea();
final Button ab = new Button("Some Value");
ab.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
data.setText(ab.getText());
}
});
a.addComponent(ab);
a.addComponent(data);
a.show();
}
After setting the text in the textfield repaint it. This may work
data.setText(ab.getText());
data.validate(); or data.repaint();
That happen because your Code. I explain:
you call to function actionPerformed: this is lisitner that call when user make action like "after i click on the TextField..".
what you need to do is simple:
a = new Form("CALCULATOR")
final TextArea data = new TextArea();
final Button ab = new Button("Some Value");
ab.addActionListener(new ActionListener(){
data.setText(ab.getText());
a.addComponent(ab);
a.addComponent(data);
a.show();
}
a = new Form("CALCULATOR")
final TextArea data = new TextArea();
final Button ab = new Button("Some Value");
ab.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
// data.setText(ab.getText()); // You should not use this
// Use this instead
data.setText(ab.getActionCommand());
}
});
a.addComponent(ab);
a.addComponent(data);
a.show();
}
来源:https://stackoverflow.com/questions/17305584/textfield-not-updating-dynamically