import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
//定义该图形中所需要的组件的引用
private Frame f;
private Button but;
private TextField tf;
MouseAndKeyEvent()
{
init(); //一初始化就具备了图形化界面和基本事件
}
public void init() //窗体
{
f = new Frame("my frame");
//对frame进行基本设置。此位置大小二合一方法
f.setBounds(300,100,600,500);
//布局管理
f.setLayout(new FlowLayout());
tf = new TextField(20);
but = new Button("my button");
//将文本框添加到Frame中
f.add(tf);
//将组件添加到frame中
f.add(but);
//显示窗体前加载一下窗体上的事件
myEvent();
//显示窗体;
f.setVisible(true);
}
//事件
private void myEvent() //事件
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//添加键盘监听
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))
{
System.out.println(code+"..是非法的");
//使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。
e.consume(); //屏蔽键
}
}
});
//给but 注册添加一个键盘监听。
but.addKeyListener(new KeyAdapter()
{
//要查看键盘事件对象
public void keyPressed(KeyEvent e)
{
//Ctrl组合键
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
System.out.println("ctrl+enter is run");
//if(e.getKeyCode()==KeyEvent.VK_ESCAPE) //用常量,不用输==27
//System.exit(0);
//System.out.println(e.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
}
});
}
/*
按钮支持一个特有监听addActionListener
添加指定的动作侦听器,以接收发自此按钮的动作事件
按钮上加事件尽量加ActionEvent,因为鼠标键盘都能
让按钮活动。
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("action ok");
}
});
//鼠标侦听器
but.addMouseListener(new MouseAdapter()
{
private int count = 1;
private int clickCount;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标光标进入到该组件"+count++);
}
public void mouseClicked(MouseEvent e)//点击动作比ActionEvent先执行
{
if (e.getClickCount()==2)
System.out.println("双/点击动作"+clickCount++);
}
});
}
*/
public static void main(String[] args)
{
new MouseAndKeyEvent();
}
}
import java.awt.event.*;
class MouseAndKeyEvent
{
//定义该图形中所需要的组件的引用
private Frame f;
private Button but;
private TextField tf;
MouseAndKeyEvent()
{
init(); //一初始化就具备了图形化界面和基本事件
}
public void init() //窗体
{
f = new Frame("my frame");
//对frame进行基本设置。此位置大小二合一方法
f.setBounds(300,100,600,500);
//布局管理
f.setLayout(new FlowLayout());
tf = new TextField(20);
but = new Button("my button");
//将文本框添加到Frame中
f.add(tf);
//将组件添加到frame中
f.add(but);
//显示窗体前加载一下窗体上的事件
myEvent();
//显示窗体;
f.setVisible(true);
}
//事件
private void myEvent() //事件
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//添加键盘监听
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))
{
System.out.println(code+"..是非法的");
//使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。
e.consume(); //屏蔽键
}
}
});
//给but 注册添加一个键盘监听。
but.addKeyListener(new KeyAdapter()
{
//要查看键盘事件对象
public void keyPressed(KeyEvent e)
{
//Ctrl组合键
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
System.out.println("ctrl+enter is run");
//if(e.getKeyCode()==KeyEvent.VK_ESCAPE) //用常量,不用输==27
//System.exit(0);
//System.out.println(e.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
}
});
}
/*
按钮支持一个特有监听addActionListener
添加指定的动作侦听器,以接收发自此按钮的动作事件
按钮上加事件尽量加ActionEvent,因为鼠标键盘都能
让按钮活动。
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("action ok");
}
});
//鼠标侦听器
but.addMouseListener(new MouseAdapter()
{
private int count = 1;
private int clickCount;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标光标进入到该组件"+count++);
}
public void mouseClicked(MouseEvent e)//点击动作比ActionEvent先执行
{
if (e.getClickCount()==2)
System.out.println("双/点击动作"+clickCount++);
}
});
}
*/
public static void main(String[] args)
{
new MouseAndKeyEvent();
}
}