+ -
当前位置:首页 → 问答吧 → 请问侦测按键的事件

请问侦测按键的事件

时间:2011-09-27

来源:互联网

我想试一个视窗程式...当按下一些键的组合时会有相对应的动作
如: ALT+F4会关闭视窗
ALT+ M 会最大化
......

目前的想法是想将指令输入至一个TextLabel
此Label能显示当下所被按的键

作者: jackyp0210   发布时间: 2011-09-27

这样写你觉得怎么样???
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
 
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
public class Test extends KeyAdapter {
  JFrame frm = new JFrame("测试程式");
  JTextArea txa = new JTextArea("", 8, 10);
  
//  让JTextArea有ScrollBar
  JScrollPane sp = new JScrollPane(txa);
  
  JTextField txf = new JTextField(18);
 
  public Test() {
 
    frm.setSize(400, 300);
    frm.setLayout(new FlowLayout());
 
    txa.addKeyListener(this);
    txf.setBackground(Color.blue);
    txf.setEditable(false);
 
//    方便将程式结束
    frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    frm.add(txf);
    frm.add(sp);
    frm.setVisible(true);
 
  }
 
  public static void main(String[] args) {
    new Test();
  }
 
  public void keyTyped(KeyEvent e) {
    
//    每次都将JTextField清空
    txf.setText("");
    
    int keynum = e.getModifiersEx();
    char ch = e.getKeyChar();
    if (keynum == 512 && ch == 'f') {
      txf.setText("TextField显示按下ALT + f");
    }
 
  }
}

作者: kiwiflashget   发布时间: 2011-09-28

热门下载

更多