Java 重置文本区域内容
我有这个密码。。在这里,当我在textfield中输入数字“6”时,文本应该显示在textarea中。但在这之后,如果我输入任何其他数字,我希望textarea的内容是清晰的。但是,当我执行代码时,即使我输入了不同的数字,文本区域的旧内容也会保留下来。请帮忙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><
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”,但文本字段没有清除:(