我对Java编程比较陌生,我写了一些代码放置JLabel,文本设置为“Enter text here
”在JTextField后面。 (类似于Microsoft登录页面的功能)我想知道当用户开始在文本字段中输入时,是否有办法删除JLabel的文本。 (或者,如果这样的事件处理程序存在。)
非常感谢任何帮助。
答案 0 :(得分:2)
对于由Document支持的某些特定字段,您可以拥有文档更改侦听器,如下所示:
答案 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。