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. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  2. 【智能家居篇】wifi在智能家居中的应用

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在设计智能家居系统方案时,一个很关键的point就是组网方式.组网方式关系到整个智能家居系统的稳定性.可扩展性.实时 ...

  3. C语言面试题大汇总

    static有什么用途?(请至少说明两种)1.限制变量的作用域2.设置变量的存储域7. 引用与指针有什么差别?1) 引用必须被初始化,指针不必.2) 引用初始化以后不能被改变,指针能够改变所指的对象. ...

  4. JAVA(2)——JDBC

    刚接触JDBC的时候,有时候就在想,为什么java要用JDBC,而不是直接使用之前在VB中就学习过的ODBC,由于ODBC是在JDBC之前出现,所以ODBC肯定由于无法完毕某些操作或者不能非常顺利的完 ...

  5. MYSQL分页limit速度太慢优化方法

    http://www.fienda.com/archives/110 在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死 ...

  6. .Net中JS调用后台的方法

    前台方法: <script type="text/jscript"> var k = "test"; var s = '<%=ShowMsg( ...

  7. 实例源码--Android底部功能分类Tab使用实例

    下载源码 技术要点:  1.底部功能布局实例 2.TAB使用详细实例 3.详细的源码注释 ...... 详细介绍: 1. 底部功能布局实例 底部功能布局是开发过程中常用到布局,本实例用TAB的方式实现 ...

  8. QT Creator 代码自动补全快捷键设置

    在QT Creater界面点Tools再进Options...(找到environment->Keyboard)在里面找到FakeVim目录下的,发现默认快捷键就是CTRL+SPACE,把它删除 ...

  9. org.apache.hadoop.fs-BlockLocation

    工具类吧 package org.apache.hadoop.fs; import org.apache.hadoop.io.*; //IO包下的类还没涉及到.遇到一个分析一个. import jav ...

  10. iOS10全新推送功能的实现

    从iOS8.0开始推送功能的实现在不断改变,功能也在不断增加,iOS10又出来了一个推送插件的开发(见最后图),废话不多说直接上代码: 在开始之前需要打开一个推送开关,不然无法获取deviceToke ...