黑马程序员技术交流社区

标题: 关于TextArea清空的问题 [打印本页]

作者: hhmm665544    时间: 2014-3-23 00:25
标题: 关于TextArea清空的问题
遇到个很奇怪的现象,清空成功一次后接着又失败一次,然后又成功一次失败一次,帮我看看问题出在哪里?
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. public class CheckIP {
  4.        
  5.         private Frame f;
  6.         private TextField tf;
  7.         private Button bt;
  8.         private TextArea ta;
  9.        
  10.         public CheckIP(){
  11.                 init();
  12.         }
  13.        
  14.         void init(){
  15.                 f = new Frame("验证IP地址是否正确");
  16.                 f.setBounds(200,100,400,300);
  17.                 f.setLayout(new FlowLayout());
  18.                 tf = new TextField("",20);
  19.                 bt = new Button("验证");
  20.                 ta = new TextArea("",5,29);
  21.                 f.add(tf);
  22.                 f.add(bt);
  23.                 f.add(ta);
  24.                 myEvent();
  25.                 f.setVisible(true);
  26.         }
  27.        
  28.         private void myEvent(){
  29.                 //关闭按钮事件
  30.                 f.addWindowListener(new WindowAdapter() {
  31.                         public void windowClosing(WindowEvent e){
  32.                                 System.exit(0);
  33.                         }
  34.                 });
  35.                
  36.                 //bt按钮事件
  37.                 bt.addActionListener(new ActionListener() {
  38.                        
  39.                         public void actionPerformed(ActionEvent e) {
  40.                                 // TODO 自动生成的方法存根
  41.                                 ta.setText("");//清空TextArea
  42.                                 String text = tf.getText();//获取编辑框的内容
  43.                                 String info = matches(text);
  44.                                 ta.append(info);
  45.                         }
  46.                 });
  47.         }
  48.        
  49.        
  50.         public String matches(String text){
  51.                
  52.                 if(text != null && !text.isEmpty()){
  53.                         String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
  54.                         +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
  55.                         +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
  56.                         +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
  57.                         if(text.matches(regex)){
  58.                                 return text+"\n是一个合法的IP地址";
  59.                         }
  60.                         else{
  61.                                 return text+"\n不是一个合法的IP地址";
  62.                         }
  63.                 }
  64.                 return "请输入要验证的ip地址";
  65.         }
  66.         public static void main(String[] args) {
  67.                 // TODO 自动生成的方法存根
  68.                 new CheckIP();
  69.         }

  70. }
复制代码





作者: 疯狂沙漠    时间: 2014-3-23 01:36
  1.   //bt按钮事件
  2.                 bt.addActionListener(new ActionListener() {
  3.                         
  4.                         public void actionPerformed(ActionEvent e) {
  5.                                 // TODO 自动生成的方法存根
  6.                                 ta.setText("");//清空TextArea
  7.                                 String text = tf.getText();//获取编辑框的内容
  8.                                 String info = matches(text);
  9.                                 ta.append(info);
  10.                         }
  11.                 });
复制代码

  ta.append(info);这个方法是追加文本,可以使用ta.setText(info),就只显示当前的信息
作者: hhmm665544    时间: 2014-3-23 12:26
疯狂沙漠 发表于 2014-3-23 01:36
ta.append(info);这个方法是追加文本,可以使用ta.setText(info),就只显示当前的信息 ...

我前面有个ta.setText("");啊,为什么不能每次清空都正常呢?难道内存中还有一个info?
作者: hhmm665544    时间: 2014-3-23 12:32
如果我把ta.setText("");改成ta.setText(" ");就不会出现这种奇怪的现象,我想知道原因是什么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2