重置文本区域内容

时间:2013-04-09 17:34:54

标签: java applet textarea textfield

我有这个代码..这里当我在文本字段中输入数字“6”时,文本应该显示在textarea ..但之后如果我输入任何其他数字我想要textarea内容清除。但是当我执行我的代码时,即使我输入不同的数字,textarea的旧内容仍然存在。请帮忙!

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/* <applet code="front" width=500 height=500></applet> */
public class front extends Applet implements ActionListener {
  String msg="";
  TextArea text,text1;
  TextField txt;
  Button load, enter;

  public void init() {
    enter=new Button("Enter");
    load=new Button("Load");
    txt=new TextField(5);
    text=new TextArea(10,15);

    add(load);
    add(text);

    add(txt);
    add(enter);

    load.addActionListener(this);
    txt.addActionListener(this);
    enter.addActionListener(this);
  }

  public void actionPerformed(ActionEvent ae)
  {
    String str = ae.getActionCommand();
    if(str.equals("Load")) {
      msg = "You pressed Load";
    } else {
      if(txt.getText().toString().equals ("6")) {
        msg="Set the text for 6";
        text.setText("Text");
      } else {
        msg="Invalid number";
        text.setText("");
      }
    }
    repaint();
  }

  public void paint(Graphics g) {
    g.drawString(msg,350,250);
  }
}

3 个答案:

答案 0 :(得分:2)

编写actionPerformed()方法,如下所示

    public void actionPerformed(ActionEvent ae)
  {
    String str = ae.getActionCommand();
    if(str.equals("Load")) {
      msg = "You pressed Load";
    } else {
      if(txt.getText().toString().equals ("6")) 
         {
        **text.setText("");**
        msg="Set the text for 6";
        text.setText("Text");
         } 
         else {
        msg="Invalid number";
        text.setText("");
      }
    }
    repaint();
  }

错误在于你写完后没有清除文本字段! 现在使用text.setText("");条件

中的if清除它

希望这能解决你的问题!

答案 1 :(得分:0)

您应该在super.paint(g)方法中致电paint(Graphics g)

public void paint(Graphics g) {
    super.paint(g);
    g.drawString(msg,350,250);
  }

答案 2 :(得分:0)

现在,text.setText("");将不执行任何操作,它与//text.setText("");

相同

So Better Approach是借助ASCII码,

对于空字符ASCII值为0,在unicode中我们可以将其写为'\u0000'

最后,本声明肯定会奏效:text.setText(""+'\u0000');

注意:他们没有方法是textArea类来清除区域... 所以你必须自己做。