XXXListener监听器

阅读更多
package testDemo1;

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;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


/*
 * 组件.addXXXListener(new XXXAdapter(){
 * 
 *     public void methodname(XXXEvent e){}    
 *     
 *     });    
 *     
 *     */
public class FrameTest {

	public static void main(String[] args) {
		Frame f = new Frame("我的第一个窗口");// 该窗口默认不显示
		f.setSize(400, 600);// 设置窗口大小
		f.setLocation(500, 50);// 设置窗口显示位置
		f.setVisible(true);// 显示窗口
        
		//添加一个按钮组件
		Button but = new Button("my button");// 按钮设置为中文可能会出现乱码
		f.setLayout(new FlowLayout());// 默认是边界式布局(按钮巨大),因此需要在主面板中设置布局
		f.add(but);// 添加按钮到面板
		
		//添加一个文本框组件
		TextField tf = new TextField(40);//文本框的长度设置为40
		TextField tf2 = new TextField(40);//第二个文本框
		f.add(tf);
		f.add(tf2);

		but.addActionListener(new ActionListener() {// 按钮操作的监听器
			
			@Override
			public void actionPerformed(ActionEvent e) {// 只有这样一个可重写的方法
				System.out.println("按钮被触发" + e);
			}
			
		});
		
		but.addMouseListener(new MouseAdapter() {//鼠标操作的监听器

			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("鼠标单击");
				
				if(e.getClickCount() == 2) {//如果按键次数为2次
					System.out.println("鼠标双击");
				}
			}
			
		});

		f.addWindowListener(new WindowAdapter() {// 窗口的监听器
			
			@Override
			public void windowClosing(WindowEvent e) {
				System.out.println("窗口关闭");// 命令行输出窗口关闭
				System.exit(0);// 关闭进程(这两行代码顺序不能颠倒)
			}
			
		});
		
		tf.addKeyListener(new KeyAdapter() {

			@Override
			public void keyPressed(KeyEvent e) {
				char key = e.getKeyChar();
				int code = e.getKeyCode();
				System.out.println("按下的按键是:"+key);//这样只能输出ABCD等按键
				System.out.println("按下的按键是:"+KeyEvent.getKeyText(code));//这样可以输出其他按键
				System.out.println("按键的ASCII码是"+code);
			}

			
			
		});
		
		tf2.addKeyListener(new KeyAdapter() {

			@Override
			public void keyPressed(KeyEvent e) {
				int code = e.getKeyCode();
				if(!(code >= KeyEvent.VK_0 && code <= KeyEvent.VK_9)) {//如果按键不是0-9(非小键盘)
					System.out.println("必须是0-9的数字");
				}
			}
			
		});

	}

}

你可能感兴趣的:(java)