java 事件监听

说明:根据学习b站【狂神说java】视频所写
视频链接

案例1

package bili_02;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

//ActionListener是一个接口
class MyActionListener implements ActionListener{
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		System.out.println("点击了btn");
	}
	 
 }
public class TestAction {
	public static void main(String[] args) {
		//按下按钮,触发一些事件
		Frame frame = new Frame("事件监听窗口");
		Button btn = new Button("btn");
		//因为addActionListener()需要一个ActionListener,所以我们需要构造一个ActionListener
		MyActionListener myActionListener = new MyActionListener();
		btn.addActionListener(myActionListener);
		frame.add(btn);
		//自适应大小
		frame.setSize(200, 100);
		frame.setVisible(true);
		windowClosing(frame);
	}
	//关闭窗口的事件
	public static void windowClosing(Frame frame) {
		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

运行结果:

在这里插入图片描述

案例2

两个按钮共用一个监听

package bili_02;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

class MyMonitor implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		System.out.println("点击了"+e.getActionCommand());
		if(e.getActionCommand().equals("start")) {
			
		}
	}
	
}
public class TestActionListener {
	public static void main(String[] args) {
		//两个按钮,实现一个监听
		//开始 结束
		Frame frame = new Frame("开始-结束");
		Button btn1 = new Button("start");
		Button btn2 = new Button("stop");
		frame.add(btn1,BorderLayout.NORTH);
		frame.add(btn2,BorderLayout.SOUTH);
		frame.setSize(200,100);
		//设置显示内容
		btn2.setActionCommand("btn2-stop");
		
		MyMonitor myMonitor = new MyMonitor();
		btn1.addActionListener(myMonitor);
		btn2.addActionListener(myMonitor);
		
		windowClosing(frame);
		frame.setVisible(true);
	}
	public static void windowClosing(Frame frame) {
		frame.addWindowListener((WindowListener) new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

运行结果为:
在这里插入图片描述

案例3

输入文本框监听,输入文本框不能换行,文本域可以换行

package bili_03;

import java.awt.*;
import java.awt.event.*;

class MyFrame extends Frame {
	public MyFrame() {
		TextField textField = new TextField();
		add(textField);
		pack();

		// 监听这个文本框输入的文字
		MyActionListener myActionListener = new MyActionListener();
		// 按下enter 会触发这个输入框的事件
		textField.addActionListener(myActionListener);

		// 设置替换编码 输入的字符显示为*
		textField.setEchoChar('*');
		setVisible(true);
	}
}

class MyActionListener implements ActionListener {
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		// 在监听器中拿到了TextField对象,然后借用TextField对象的方法获得文本
		TextField field = (TextField) e.getSource(); // 获得一些资源,返回一个对象
		System.out.println(field.getText()); // 获得输入框的文本
		field.setText(""); // 按下enter之后清空
	}
}

public class TestText {
	public static void main(String[] args) {
		MyFrame myFrame = new MyFrame();
		windowClosing(myFrame); //关闭
	}
	//监听关闭事件
	public static void windowClosing(Frame frame) {
		frame.addWindowListener((WindowListener) new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

运行结果如下:
案例3运行结果

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值