我有这个代码..这里当我在文本字段中输入数字“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);
}
}
答案 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类来清除区域... 所以你必须自己做。