dynamicevents.java

来自「翁剀JAVA语言那门课程的教案 很多人都看多他的视频教程可惜没有ppt的教案」· Java 代码 · 共 75 行

JAVA
75
字号
//: DynamicEvents.java
// The new Java 1.1 event model allows you to
// change event behavior dynamically. Also
// demonstrates multiple actions for an event.
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class DynamicEvents extends Frame {
	Vector v = new Vector();
	int i = 0;
	Button
		b1 = new Button("Button 1"),
		b2 = new Button("Button 2");

	public DynamicEvents() {
		setLayout(new FlowLayout());
		b1.addActionListener(new B());
		b1.addActionListener(new B1());
		b2.addActionListener(new B());
		b2.addActionListener(new B2());
		add(b1);
		add(b2);
	}

	class B implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			System.out.println("A button was pressed");
		}
	}
	
	class CountListener implements ActionListener {
		int index;
		public CountListener(int i) { 
			index = i; 
		}
		public void actionPerformed(ActionEvent e) {
			System.out.println(
			"Counted Listener " + index);
		}
	}
	
	class B1 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			System.out.println("Button 1 pressed");
			ActionListener a = new CountListener(i++);
			v.addElement(a);
			b2.addActionListener(a);
		}
	}

	class B2 implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			System.out.println("Button 2 pressed");
			int end = v.size() -1;
			if(end >= 0) {
				b2.removeActionListener(
				(ActionListener)v.elementAt(end));
				v.removeElementAt(end);
			}
		}
	}

	public static void main(String[] args) {
		Frame f = new DynamicEvents();
		f.addWindowListener(
			new WindowAdapter() {
				public void windowClosing(WindowEvent e){
					System.exit(0);
			}
			});
		f.setSize(300,200);
		f.show();
	}
} ///:~

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?