Skip to content

已阅读

0%

JTextField聚焦失焦事件

Java Swing

通过JTextField聚焦失焦事件实现类似HTML input placeholder属性

标签:
Swing
发布于 2023年3月10日
更新于 2023年4月11日

代码实现如下

java
// 设置提醒文字
String emptyText = "等待输入...";
// new JTextField对象
JTextField jTextField = new JTextField();
// 赋值
jTextField.setText(emptyText);
// 设置等待输入文字颜色为浅灰色
jTextField.setForeground(Color.DARK_GRAY)
// 设置失焦聚焦事件
jTextField.addFocusListener(new FocusListener() {  
    @Override  
    public void focusGained(FocusEvent e) {  
        //获得焦点,当获取text和emptyText相同时从新赋值并更换字体颜色,不相同则不做任何处理
        if (emptyText.equals(jTextField.getText())) {
            jTextField.setText("");
            jTextField.setForeground(Color.BLACK);
        }
    }  
    @Override  
    public void focusLost(FocusEvent e) {  
        //失去焦点,输入框没有值时将emptyText从新赋回同时改变颜色
         if (jTextField.getText().isEmpty() && !emptyText.isEmpty()) {
            jTextField.setText(emptyText);
            jTextField.setForeground(Color.DARK_GRAY);
        }
    }  
});

颜色可以根据需要修改,通过失焦聚焦逻辑实现等待输入提示效果

Last updated: