java中JTextField如何强制失去焦点或者赋予焦点?

2025-05-06 20:50:38
推荐回答(1个)
回答1:

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

核心代码

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

效果图

参考代码

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