1、外部类监听

package com.yfs.javase;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//外部类监听
public class FrameDemo1 extends Frame {
Button but1 = new Button(" + ");
Button but2 = new Button(" - ");
TextField text = new TextField(20);
public FrameDemo1() {
super("event1外部类");
setLocation(200, 150);
// 设置布局
setLayout(new FlowLayout());
text.setText("100");
text.setEditable(false);
//创建监听器对象
MyListener listener = new MyListener(this);
//建立关联 监听器添加到按钮
but1.addActionListener(listener);
but2.addActionListener(listener);
//text.getText();//取text值
add(but1);
add(text);
add(but2);
setResizable(false);
pack();
// 默认隐藏 设置显示
setVisible(true);
} public static void main(String[] args) {
new FrameDemo1();
} } //开发监听器 实现监听器接口
class MyListener implements ActionListener {
private FrameDemo1 frame;
//通过构造方法强制传入窗体对象
public MyListener(FrameDemo1 frame) {
this.frame = frame;
}
//ActionEvent 事件对象
@Override
public void actionPerformed(ActionEvent e) {
// System.out.println("按钮被单击了....");
// //事件对象
System.out.println(e.getActionCommand());//控件字符
// System.out.println(e.getSource());//事件源
//从text取值
//依赖传入对象
//FrameDemo1 frame = new FrameDemo1();//不能创建窗体对象
int val = Integer.parseInt(frame.text.getText());
System.out.println("val = " + val);
String opt = e.getActionCommand().trim();
if("+".equals(opt)){
frame.text.setText(String.valueOf(val + 1));
} else if("-".equals(opt)){
frame.text.setText(String.valueOf(val - 1));
} } }

2.内部类监听

package com.yfs.javase;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//内部类监听
public class FrameDemo2 extends Frame {
Button but1 = new Button(" + ");
Button but2 = new Button(" - ");
TextField text = new TextField(20);
public FrameDemo2() {
super("event1内部类");
setLocation(200, 150);
// 设置布局
setLayout(new FlowLayout());
text.setText("100");
text.setEditable(false);
//创建监听器对象
Listener listener = new Listener();
//建立关联 监听器添加到按钮
but1.addActionListener(listener);
but2.addActionListener(listener);
//text.getText();//取text值
add(but1);
add(text);
add(but2);
setResizable(false);
pack();
// 默认隐藏 设置显示
setVisible(true);
}
//内部类
class Listener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int val = Integer.parseInt(text.getText());
String opt = e.getActionCommand().trim();
System.out.println(opt);
if("+".equals(opt)){
text.setText(String.valueOf(val + 1));
} else if("-".equals(opt)){
text.setText(String.valueOf(val - 1));
}
} } public static void main(String[] args) {
new FrameDemo2();
} }

3.自监听

package com.yfs.javase;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//自监听
public class FrameDemo3 extends Frame implements ActionListener {
Button but1 = new Button(" + ");
Button but2 = new Button(" - ");
TextField text = new TextField(20);
public FrameDemo3() {
super("event1自监听类");
setLocation(200, 150);
// 设置布局
setLayout(new FlowLayout());
text.setText("100");
text.setEditable(false); //建立关联 监听器添加到按钮
but1.addActionListener(this);
but2.addActionListener(this);
//text.getText();//取text值
add(but1);
add(text);
add(but2);
setResizable(false);
pack();
// 默认隐藏 设置显示
setVisible(true);
} public static void main(String[] args) {
new FrameDemo3();
} @Override
public void actionPerformed(ActionEvent e) {
//事件处理代码
int val = Integer.parseInt(text.getText());
String opt = e.getActionCommand().trim();
if("+".equals(opt)){
text.setText(String.valueOf(val + 1));
} else if("-".equals(opt)){
text.setText(String.valueOf(val - 1));
}
} }

4.匿名类监听

package com.yfs.javase;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//匿名类监听
public class FrameDemo4 extends Frame {
Button but1 = new Button(" + ");
Button but2 = new Button(" - ");
TextField text = new TextField(20);
public FrameDemo4() {
super("event1匿名监听类");
setLocation(200, 150);
// 设置布局
setLayout(new FlowLayout());
text.setText("100");
text.setEditable(false); //建立关联 监听器添加到按钮
but1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
int val = Integer.parseInt(text.getText()) + 1;
text.setText(String.valueOf(val)); }
});
but2.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent arg0) {
int val = Integer.parseInt(text.getText()) - 1;
text.setText(String.valueOf(val)); }
});
//text.getText();//取text值
add(but1);
add(text);
add(but2);
setResizable(false);
pack();
// 默认隐藏 设置显示
setVisible(true);
} public static void main(String[] args) {
new FrameDemo4();
} }

5.背景图片

package com.yfs.javase;

import java.awt.FlowLayout;
import java.awt.Image; import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
//匿名类监听
public class FrameDemo5 extends JFrame { public FrameDemo5() {
super("event1匿名监听类");
setBounds(200, 150, 400, 400);
setLayout(new FlowLayout());
//标题图片
Image logo = new ImageIcon("img/m.gif").getImage();
setIconImage(logo);
//图片label
Icon ic = new ImageIcon("img\\index.gif");
JLabel jl = new JLabel(ic); JButton but = new JButton(new ImageIcon("img/1_03.gif"));
add(but);
add(jl);
setResizable(false);
//pack();
setVisible(true);
} public static void main(String[] args) {
new FrameDemo5();
} }

java新手笔记27 监听器类的更多相关文章

  1. JAVA自学笔记27

    JAVA自学笔记27 1.类的加载 1)当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. ①加载:就是指将class文件读入内存,并为之创 ...

  2. [Java] JSP笔记 - Listener 监听器

    Java Web 开发时,可以使用 Listener 来监听来监听一些事件,从而实现一些功能.实际上这个监听器,原理就是 Delphi 中大家常用的各种事件. 1. 那么,监听器的主要用途用哪些呢: ...

  3. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  4. 【原】Java学习笔记031 - 常用类

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...

  5. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  6. Java学习笔记day06_自定义类_ArrayList

    1.自定义类class 使用类的形式, 对现实中的事物进行描述. 类是引用数据类型. 事物: 方法,变量. 方法:事物具备的功能. 变量:事物的属性. 格式: public class 类名{ //属 ...

  7. Java学习笔记(2)——有关类

    Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...

  8. java新手笔记31 集合实现类

    Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...

  9. java新手笔记18 类比较

    1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 // ...

随机推荐

  1. 【转】selenium简介及安装方法

    转自:http://www.cnblogs.com/fnng/p/3157639.html 1. selenium 介绍 selenium 是一个web 的自动化测试工具,不少学习功能自动化的同学开始 ...

  2. 实现控件WPF(4)----Grid控件实现六方格

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 利用Grid控件能很轻松帮助我们实现各种布局.上面就是一个通过Grid单元格 ...

  3. python的一些总结4

    这篇继续水 但是在水的的基础上 让搭建能正常使用flask 搭建一个站 上篇讲到在 模板view中 输入{{xx }} 可以打印 后台传的值. 这篇讲一下 循环控制 条件控制等 修改后台代码: @ap ...

  4. 【HMTL】文字飞舞的美

    这是在一个大神那看到的就拿过来了,希望能够更多人能看到. 这个是效果: 源文件下载: 点 击 下 载

  5. InfluxDB安装

    参考https://www.influxdata.com/downloads/#influxdb 官网 OS X brew update brew install influxdb Docker Im ...

  6. iOS 2D绘图详解(Quartz 2D)之路径(stroke,fill,clip,subpath,blend)

    Stroke-描边 影响描边的因素 线的宽度-CGContextSetLineWidth 交叉线的处理方式-CGContextSetLineJoin 线顶端的处理方式-CGContextSetLine ...

  7. Android实现图表绘制和展示

    本文演示在Android平台中绘制和展示图表示例,本示例是基于RChart 2实现的. 在一个系统中经常要用到图表统计数据,在WEB开发中图表绘制是一件简单的事情,因为有比较多的开源方案.但在Andr ...

  8. iOS开发——网络编程Swift篇&(四)异步Get方式

    异步Get方式 // MARK: - 异步Get方式 func asynchronousGet() { //创建NSURL对象 var url:NSURL! = NSURL(string: " ...

  9. Mac OS X 10.10 Yosemite下安装java、jdk、mysql、maven、idea

    Mac OS X Yosemite已经在2014年10月17日正式发布了. 作为一个java开发者,尝鲜第一时间安装了最新版本. 和之前的OS X系统还是有很多不同的.下面主要在java开发环境方面做 ...

  10. GLOG使用注意事项

    FLAGS_stderrthreshold     输出到stderr的门限,默认为2(ERROR),默认,ERORR以下的信息不打印到终端 FLAGS_alsologtostderr 当这个全局变量 ...