使用Button(Java)清除TextField

时间:2014-06-29 05:28:34

标签: java text textbox swt clear

我尝试使用以下代码清除两个文本框。它执行时没有错误,但单击按钮后,文本框中输入的数字不会更改。有什么建议?提前致谢! :)

btnClear = new Button(shlTestProject, SWT.NONE);
btnClear.addKeyListener(new KeyAdapter() {
    @Override
    public void keyPressed(KeyEvent e) {
        textBox1.setText("");
        textBox2.setText("");
    }
});
btnClear.setBounds(240, 298, 75, 25);
btnClear.setText("Clear");



    textBox1= new Text(shlTestProject, SWT.BORDER);
    textBox1.setBounds(224, 386, 76, 21);
    textBox1.addVerifyListener(new VerifyListener() {
        public void verifyText(VerifyEvent e) {
            e.doit = false; //assume we don't allow it
            char myChar = e.character; // get the character typed
           if (Character.isDigit(myChar)) e.doit = true; // allow 0-9 
          if (myChar == '\b') { //allow backspace
          e.doit = true;
          }

        }
    });

3 个答案:

答案 0 :(得分:3)

使用选择侦听器处理按下的按钮:

btnClear.addSelectionListener(new SelectionAdapter()
  {
    @Override
    public void widgetSelected(SelectionEvent e)
    {
      textBox1.setText("");
      textBox2.setText("");
     }
  });

答案 1 :(得分:1)

public function findPasswords($attribute, $params, $validator)
{
    $user = User::findOne(Yii::$app->user->id);
    if (!Yii::$app->getSecurity()->validatePassword($this->old_password, $user->password_hash))
        $this->addError($attribute, 'The Old Password not match.');
        return false;
    }
    return true;
}

答案 2 :(得分:-2)

正如亚历山大所提到的,在你的班级中实施动作侦听器,然后只需按下特定按钮即可。如果是,请使用此代码清除文本字段。 TextFieldName.setText("");

请记住,您需要使用这行代码触发您的动作侦听器事件,否则它将无效。 buttonName.addActionListener(this)

玩得开心!