java笔记之图形类详解---事件监听器

时间:2021-11-25 15:57:13

 事件监听器代表负责处理事件的接口。Java 提供了各种事件监听器类,但我们将讨论更频繁使用的那些事件监听器类。一个事件监听器的每个方法有一个参数作为一个对象,该对象是 EventObject 类的子类。例如,鼠标事件监听器的方法将接受 MouseEvent 的实例,其中 MouseEvent 是 EventObject 派生的。

EventListner 接口

它是一个标记接口,每一个监听器接口必须扩展它。这个类定义在 java.util 包中。

事件: 当发生了某个事件的时候,就会有相应处理方案。
事件源 监听器 事件 处理方案

以前我们在frame添加的元素点击是无任何响应的,需要添加监听。

java笔记之图形类详解---事件监听器

鼠标事件监听器

java笔记之图形类详解---事件监听器

键盘事件监听器

import java.awt.event.KeyAdapter;
import java.awt.
event.KeyEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Demo05 {
static int count=0;
public static void main(String[] args) {
JFrame frame
=new JFrame("窗体");
JPanel panel
=new JPanel();
JLabel nameLable
=new JLabel("用户名");
JTextField nameFiled
=new JTextField(10);
panel.add(nameLable);
panel.add(nameFiled);
frame.add(panel);

nameFiled.addKeyListener(
new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
System.
out.println("按下的字符:"+e.getKeyChar());
System.
out.println("获取键对应的数值:"+ e.getKeyCode());
}
});
Demo01.initJframe(frame,
300, 400);

}
}

java笔记之图形类详解---事件监听器

事件监听器练习------记事本的保存实现

import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.
event.ActionEvent;
import java.awt.
event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;

public class Demo04 {
JFrame frame
=new JFrame("记事本");
JMenuBar bar
=new JMenuBar();
JMenu file
=new JMenu("文件");
JMenu open
=new JMenu("保存");

JMenuItem saveOne
=new JMenuItem("保存");
JTextArea area
=new JTextArea(20, 30);
   area.setLineWrap(true); //设置自动换行 
public void initNotepad(){

file.add(saveOne);
bar.add(file);
saveOne.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
FileDialog fileDialog
= new FileDialog(frame, "请选择保存的路径",FileDialog.SAVE);
fileDialog.setVisible(
true);
//获取用户选择的路径与文件名
String path = fileDialog.getDirectory();
String fileName
= fileDialog.getFile();
//创建一个输入对象
FileOutputStream fileOutputStream = new FileOutputStream(new File(path,fileName));
//获取文本域的内容,把内容写出
String content = area.getText();
fileOutputStream.write(content.getBytes());
//关闭资源
fileOutputStream.close();
}
catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}
});
frame.add(bar,BorderLayout.NORTH);//设置自动换行
frame.add(area);
Demo01.initJframe(frame,
300, 400);
}
public static void main(String[] args) {
new Demo04().initNotepad();
}
}

效果图:

java笔记之图形类详解---事件监听器