Admin_in_jt12 =new JTextField();
  add(Admin_in_jt12);
  Admin_in_jt12.setBounds(800,144,50,20);
  
  Admin_in_jt12.getDocument().addDocumentListener(new DocumentListener(){
    public void changedUpdate(DocumentEvent e) {//这是更改操作的处理
          y = new  String(Admin_in_jt12.getText().trim());
         //Admin_in_jt12x = Integer.parseInt(y);
    }
      public void insertUpdate(DocumentEvent e) {//这是插入操作的处理
       y = new  String(Admin_in_jt12.getText().trim());
      // Admin_in_jt12x = Integer.parseInt(y);
      }    
      public void removeUpdate(DocumentEvent e) {//这是删除操作的处理
       y = new  String(Admin_in_jt12.getText().trim());
      // Admin_in_jt12x = Integer.parseInt(y);
      }
  }
);

程序如上,我只要打开注释,把STRING Y 转成INT Admin_in_jt12x ,按钮里的Admin_in_jt12.setText("")就在控制台提示不能输入一个STRING “” 各位大大帮帮啊 搞了1天了

解决方案 »

  1.   

    你这个语句 写的有问题 从名称看 Admin_in_jt12x 是一个 JTextField 输入框对象 怎么能把一个 int型的变量 赋给一个文本框对象?
    应该这样  Admin_in_jt12x.setText(Integer.parseInt(y));  设置文本框中的文本值
    而且你的更改 插入  删除操作 没有实现 应有的功能
      

  2.   

    在文本发生changedUpdate、insertUpdate、removeUpdate事件的时候
    不能企图改变文本的属性,因为swing线程已经被占用了
    如果想在监听事件时实现对文本修改的操作,试下用SwingUtilities.invokeLater试下这样:public void insertUpdate(DocumentEvent e) {//这是插入操作的处理
    y = new String(Admin_in_jt12.getText().trim());
    SwingUtilities.invokeLater(new Runnable (){
    public void run() {
    Admin_in_jt12x = Integer.parseInt(y);
    }
    });
    }