【问题标题】:Clear TextField using Button (Java)使用按钮清除 TextField (Java)
【发布时间】:2014-06-29 05:28:34
【问题描述】:

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

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;
          }

        }
    });

【问题讨论】:

    标签: java text textbox swt


    【解决方案1】:

    使用选择监听器来处理被按下的按钮:

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

    【讨论】:

    • 非常感谢@greg-449!起初它不起作用,但我意识到它与我拥有的 verifyListener 冲突,因此他们只能输入数字。我会尝试解决这个问题。再次感谢。
    • textBox1/2是如何创建的?
    • 我不知道如何在 cmets 中添加,所以我将代码附加到我原来的问题中。你知道如何专门创建一个例外,以允许按钮将文本重置为空白,同时将字符保持为 0-9?
    • 我可以通过使用我在这里找到的一些代码来解决这个问题:java2s.com/Code/Java/SWT-JFace-Eclipse/… 感谢您抽出时间 greg-449,这意味着很多!
    【解决方案2】:
     clear.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick (View v){
            textView.setText("");
    
        }
        });
    

    【讨论】:

      【解决方案3】:

      正如亚历山大所说,在你的类中实现动作监听器,然后简单地监听特定按钮是否被按下。如果是,请使用此代码清除文本字段。 TextFieldName.setText("");.

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

      祝你编程愉快!

      【讨论】:

      • 问题是关于 SWT 而不是 Swing / AWT。
      猜你喜欢
      • 2019-09-19
      • 2019-11-20
      • 2020-08-15
      • 2023-03-19
      • 2012-07-05
      • 2022-09-28
      • 2011-08-10
      • 1970-01-01
      • 2019-04-09
      相关资源
      最近更新 更多