【摘要】作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的相关内容,今天就来讲讲Java Swing焦点事件监听器的相关内容。
除了单击事件外,焦点事件监听器在实际项目中应用也比较广泛,例如将光标离开文本框时弹出对话框,或者将焦点返回给文本框等。
与Java Swing焦点事件监听器有关的信息如下。
事件名称:FocusEvent。
事件监听接口: FocusListener。
事件相关方法:addFocusListener() 添加监听,removeFocusListener() 删除监听。
涉及事件源:Component 以及派生类。
FocusEvent 接口定义了两个方法,分别为 focusGained() 方法和 focusLost() 方法,其中 focusGained() 方法是在组件获得焦点时执行,focusLost() 方法是在组件失去焦点时执行。
下面以文本框的焦点事件为例来说明Java Swing焦点事件监听器的应用。本案例的核心代码如下:
package ch17;
import java.awt.BorderLayout;
import java.awt.Font;
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.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class FocusListenerDemo extends JFrame
{
JList list;
JLabel label;
JButton button1;
JTextField txtfield1;
public FocusListenerDemo()
{
setTitle("焦点事件监听器示例");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,400,200);
JPanel contentPane=new JPanel();
contentPane.setBorder(new EmptyBorder(5,5,5,5));
contentPane.setLayout(new BorderLayout(0,0));
setContentPane(contentPane);
label=new JLabel(" ");
label.setFont(new Font("楷体",Font.BOLD,16)); //修改字体样式
contentPane.add(label, BorderLayout.SOUTH);
txtfield1=new JTextField(); //创建文本框
txtfield1.setFont(new Font("黑体", Font.BOLD, 16)); //修改字体样式
txtfield1.addFocusListener(new FocusListener()
{
@Override
public void focusGained(FocusEvent arg0)
{
// 获取焦点时执行此方法
label.setText("文本框获得焦点,正在输入内容");
}
@Override
public void focusLost(FocusEvent arg0)
{
// 失去焦点时执行此方法
label.setText("文本框失去焦点,内容输入完成");
}
});
contentPane.add(txtfield1);
}
public static void main(String[] args)
{
FocusListenerDemo frame=new FocusListenerDemo();
frame.setVisible(true);
}
}
上述代码为 txtfield1 组件调用 addFocusListener() 方法添加了焦点事件监听器,并且监听器使用匿名的实现方式。在实现 FocusListener 接口的代码中编写 focusGained() 方法和 focusLost() 方法的代码。
以上就是有关Java Swing焦点事件监听器的相关内容,随着我们对Java讲解的深入,相信大家很慢慢了解它的功能,毕竟这是一款允许程序员以优雅的思维方式进行复杂编程的软件,当然,我们还会为大家带来更多的教学内容,请大家持续关注环球网校的相关内容,小编在此祝大家Java的学习之路顺利。