焦点事件监听器

package swing;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

/*
 * 焦点事件监听器
 * 在项目创建中创建FocusEventTest,在该类继承JFrame类成为窗体组件,在类中创建文本框组件
 * 并为文本框添加焦点事件监听器,将文本框组件添加到窗体中
 */
public class FocusEventTest extends JFrame{
    private JButton jb=new JButton("确定");
    public FocusEventTest() {
        setTitle("测试焦点事件监听");
        //设置窗体大小
        setSize(250,100);
        //窗体可视
        setVisible(true);
        //设置窗体关闭方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //创建容器
        Container cp=getContentPane();  
        //设置流布局管理器
        getContentPane().setLayout(new FlowLayout());  
        //创建一个标签
        final JLabel label = new JLabel();
        //在容器中添加标签
        getContentPane().add(label);
        //创建文本框
        JTextField jt=new JTextField("请单击其他文本框",10);  
        JTextField jt2=new JTextField("请单击我",10);
        //将文本框添加到容器
        cp.add(jt);  
        cp.add(jt2);  
        jt.addFocusListener(new FocusListener() {
            //组件失去焦点时调用的方法
            @Override
            public void focusLost(FocusEvent arg0) {
                JOptionPane.showMessageDialog(null, "文本框失去焦点");
            }
            //组件获取焦点时调用的方法
            @Override
            public void focusGained(FocusEvent arg0) {
            
                
            }
        });
    }
    public static void main(String[] args) {
        new FocusEventTest();
    }
    /*
     * 在本实例中,为文本框组件添加了焦点事件监听器。这个监听需要实现FocusListener接口
     * 在该接口中定义了两个方法,分别为focusLost()与focusGained(),其中focusLost()
     * 是在组件失去焦点时调用的,而focusGained()是在组件获取焦点时调用的。由于本实例需要在
     * 文本框失去焦点时弹出相应的对话框功能,所以重写focusLost(),同时在为文本框添加监听时使用
     * 了匿名内部内的形式,将实现FocusListener接口对象传递给addFocusListener().
     */

}

猜你喜欢

转载自blog.csdn.net/qq_41978199/article/details/80642548