Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重置文本区域内容_Java_Applet_Textarea_Textfield - Fatal编程技术网

Java 重置文本区域内容

Java 重置文本区域内容,java,applet,textarea,textfield,Java,Applet,Textarea,Textfield,我有这个密码。。在这里,当我在textfield中输入数字“6”时,文本应该显示在textarea中。但在这之后,如果我输入任何其他数字,我希望textarea的内容是清晰的。但是,当我执行代码时,即使我输入了不同的数字,文本区域的旧内容也会保留下来。请帮忙 import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code="front" width=500 height=500><

我有这个密码。。在这里,当我在textfield中输入数字“6”时,文本应该显示在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);
  }
}
import java.awt.*;
导入java.awt.event.*;
导入java.applet.*;
/*  */
公共类前端扩展小程序实现ActionListener{
字符串msg=“”;
text区域文本,text1;
文本字段txt;
按钮加载,输入;
公共void init(){
输入=新按钮(“输入”);
加载=新按钮(“加载”);
txt=新文本字段(5);
文本=新文本区域(10,15);
添加(加载);
添加(文本);
添加(txt);
添加(输入);
load.addActionListener(这个);
txt.addActionListener(这个);
输入.addActionListener(this);
}
已执行的公共无效行动(行动事件ae)
{
字符串str=ae.getActionCommand();
如果(str.equals(“Load”)){
msg=“您按下了加载键”;
}否则{
如果(txt.getText().toString().equals(“6”)){
msg=“将文本设置为6”;
text.setText(“文本”);
}否则{
msg=“无效号码”;
text.setText(“”);
}
}
重新油漆();
}
公共空间涂料(图g){
g、 抽绳(味精350250);
}
}
编写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
状态


希望这能解决你的问题

您应该在
paint(Graphics g)
方法中调用
super.paint(g)

public void paint(Graphics g) {
    super.paint(g);
    g.drawString(msg,350,250);
  }
现在,
text.setText(“”)
不会做任何事情,它将与
//text.setText(“”)相同

所以更好的方法是利用ASCII码

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

最后,这个语句肯定会起作用:
text.setText(“+”\u0000”)

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

我在我的计算机上运行这个示例,如果我键入除“6”以外的任何内容,TextArea就会清除(如果我键入“6”,它会将TextArea设置为“Text”),你的意思是要清除textfield吗?TextArea itseld..它确实有效..但它不会一直有效。。特别是当有两个文本区域时。。我的软件或其他东西有问题吗?没有:(它本身仍然是“文本”。问题是只显示消息“Invalid msg”,但文本字段没有清除:(