您的位置:首页 > 编程语言 > Java开发

java新手笔记27 监听器类

2015-08-23 23:40 423 查看
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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: