5

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();
                   }
Andrew Thompson
  • 163,965
  • 36
  • 203
  • 405
user2497398
  • 61
  • 1
  • 1
  • 4

3 Answers3

5

After setting the text in the textfield repaint it. This may work

  data.setText(ab.getText());
  data.validate(); or data.repaint();
pundit
  • 322
  • 1
  • 7
  • FYI you need only the validate. Its not a painting issue its a layout issue, the text field needs to grow. You should also accept pundit's answer and ideally vote it up. – Shai Almog Jun 26 '13 at 17:26
0

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();
               }
neb1
  • 209
  • 1
  • 12
0
          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();
                   }
smk pobon
  • 93
  • 9