如何监听JTextField的失去焦点事件

 我来答 举报
雪飞潇潇
2017-10-03 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:888万
展开全部

让JTextField文本框响应焦点事件 即可. 

核心代码

1
2
3
4
5
6
7
8
9
10
11
12
JTextField jtf= new JTextField(10);
jtf.addFocusListener(new FocusListener() {
    public void focusLost(FocusEvent e) {//失去焦点时
        System.out.println("失去了焦点");
        jtf.setBackground(Color.WHITE);
    }
    public void focusGained(FocusEvent e) {//获得焦点时
        System.out.println("获得了焦点");
        tf.setBackground(Color.PINK);
 
    }
});

效果图

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class TextFrame extends JFrame {
 
    JTextField jtf;
    public TextFrame() {
        JPanel jp = new JPanel();
        jtf= new JTextField(10);
        jtf.addFocusListener(new FocusListener() {
             
            @Override
            public void focusLost(FocusEvent e) {//失去焦点时
                System.out.println("失去了焦点");
                jtf.setBackground(Color.WHITE);
            }
             
            @Override
            public void focusGained(FocusEvent e) {//获得焦点时
                System.out.println("获得了焦点");
                jtf.setBackground(Color.PINK);
 
            }
        });
        jp.add(jtf);
         
        JButton jb = new JButton("点击按钮, 文本框会失去焦点");
        add(jb,BorderLayout.NORTH);
        add(jp,BorderLayout.SOUTH);
        setTitle("DEMO");
        setSize(300,220);// 窗口大小
        setLocationRelativeTo(null);// 窗口居中
        setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
        setVisible(true);
    }
    
      
    public static void main(String[] args) {
        new TextFrame();
    }
 
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式