移动适配代码java java适配模式( 五 )


* 鼠标双击事件
* @param e 事件源参数
*/
public void mouseDoubleClicked(MouseEvent e)...{
System.out.println("Doublc Clicked!");
}
}
//Test.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JFrame{
public Test(){
super("test");
init();
this.setSize(800,600);
this.setVisible(true);
}
private void init(){
JButton b=new JButton("button");
b.setBounds(50,50,100,30);
this.getContentPane().setLayout(null);
this.getContentPane().add(b);
b.addMouseListener(new MyMouseListener());
}
public static void main(String args[]){
new Test();
}
}
键盘监听器
键盘监听器KeyListener用来监听键盘事件 。键盘事件有三种:KEY_PRESSED键按下了 , KEY_RELEASED键松开了,KEY_TYPED键按过了 。每个键都有一个键码,普通键的键码就是ASCII码 。键码可通过int getKeyCode()方法获得 。Java设置了一种“虚拟键码”(Virtual Key Code),用“VK_”作为前缀,例如VK_G 。下面是某些特殊键的虚拟键码 。
键码含义键码含义
VK_LEFT/VK_RIGHT左右方向键VK_CONTROLCtrl键
VK_KP_UP小键盘向上VK_ATLAlt键
VK_PAUSE暂停键VK_SHIFTShift键
VK_NUMBER0小键盘数字0VK_F1功能键F1
VK_0数字键0VK_B字母键B
虚拟键码对应的是键位 , 不区分大小写 。要想知道大小写还必须查看修饰键(modifier key) 。这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONTROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于“同时按下”状态 。
监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt),keyTyped(KeyEvent evt),分别用于相应事件发生后的处理 。下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息 。
除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKeyText(code)方法得到输入的字符串 。用isShiftDown()判断shift键是否被按下等 。当按下Control键时getKeyText返回的是“ctrl",Alt和Shift也类似 。
下面的例子演示得到键码和字符的方法,在命令行上显示结果 。
例1 本例程演示键盘监听器后键码的用法 。
///
// KeyEvt.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyKeyListener implements KeyListener{
publicvoid keyPressed(KeyEvent evt) {
System.out.println("\n按键被按下");
showKeyEventMsg(evt);
}
publicvoid keyReleased(KeyEvent evt){ }
publicvoid keyTyped(KeyEvent evt) { }
privatevoid showKeyEventMsg(KeyEvent evt){//显示按键事件信息
//得到按键对应的整型数
int code = evt.getKeyCode();
//返回按键事件所代表的字符
char c = evt.getKeyChar();
//得到代表按键的字符串
String szText = evt.getKeyText(code);
if (code != KeyEvent.VK_UNDEFINED)
System.out.println("\n按键对应的整型数:"+code);
if (c != KeyEvent.CHAR_UNDEFINED)
System.out.println("\n与按键相联系的字符:"+c);
if (evt.isShiftDown())
System.out.println("\n按键Shift被按下");
System.out.println("\n按键本身的字符串:"+szText);
}
}
class ButtonPanel extends JPanel{
public ButtonPanel() {
//新建一个文本域组件
tf = new JTextField(20);
add(tf);
//指定用来处理该按钮事件的监听器对象为JPanel本身
myListener = new MyKeyListener();
tf.addKeyListener(myListener);
}
private JTextField tf;
private MyKeyListener myListener;
}
class ButtonFrame extends JFrame{
public ButtonFrame() {

推荐阅读