是否有" onChange"对于Java?

时间:2014-06-03 14:54:35

标签: java swing actionlistener

我对Java编程比较陌生,我写了一些代码放置JLabel,文本设置为“Enter text here”在JTextField后面。 (类似于Microsoft登录页面的功能)我想知道当用户开始在文本字段中输入时,是否有办法删除JLabel的文本。 (或者,如果这样的事件处理程序存在。)

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

对于由Document支持的某些特定字段,您可以拥有文档更改侦听器,如下所示:

Value Change Listener to JTextField

答案 1 :(得分:0)

没有通用onChange功能。但是,您可以在implements KeyListener public void keyPress的类中定义一种方法。您可以使用以下内容:

public class MyClass implements KeyListener {

    private JTextField myField;
    private JLabel myLabel;

    public MyClass() {
        myLabel = new JLabel("Enter text here");
        myField = new JTextField();
        myField.addKeyListener(this);
    }

    @Override
    public void keyPress(KeyEvent e) {
        myLabel.setText("");
    }
}

当然,您可以添加更多灵活性,但以上是一般性的想法。例如,您可以确保KeyEvent来自相应的来源,正确地说您应该:

@Override
public void keyPress(KeyEvent e) {
    if(e.getSource() == myField) {
        myLabel.setText(""):
    }
}

......还有很多其他的东西。看看Oracle's Event Listener tutorials