AWT KeyListener类
1 什么是Java AWT KeyListener
处理 KeyEvent 的类应实现此接口。该类的对象必须向组件注册。可以使用 addKeyListener() 方法注册该对象。
2 Java AWT KeyListener的语法
public interface KeyListener
extends EventListener
3 Java AWT KeyListener的方法
方法 | 描述 |
---|---|
void keyPressed(KeyEvent e) | 按下某个键时调用。 |
void keyReleased(KeyEvent e) | 释放键时调用。 |
void keyTyped(KeyEvent e) | 在键入键时调用。 |
4 Java AWT KeyListener的例子
让我们看一个简单的Java AWT KeyListener类示例。
package com.yiidian;
import java.awt.*;
import java.awt.event.*;
public class AwtListenerDemo {
private Frame mainFrame;
private Label headerLabel;
private Label statusLabel;
private Panel controlPanel;
private TextField textField;
public AwtListenerDemo(){
prepareGUI();
}
public static void main(String[] args){
AwtListenerDemo awtListenerDemo = new AwtListenerDemo();
awtListenerDemo.showKeyListenerDemo();
}
private void prepareGUI(){
mainFrame = new Frame("一点教程网:Java AWT Examples");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel = new Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(350,100);
controlPanel = new Panel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showKeyListenerDemo(){
headerLabel.setText("Listener in action: KeyListener");
textField = new TextField(10);
textField.addKeyListener(new CustomKeyListener());
Button okButton = new Button("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusLabel.setText("Entered text: " + textField.getText());
}
});
controlPanel.add(textField);
controlPanel.add(okButton);
mainFrame.setVisible(true);
}
class CustomKeyListener implements KeyListener {
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
statusLabel.setText("Entered text: " + textField.getText());
}
}
public void keyReleased(KeyEvent e) {
}
}
}
输出结果为:
热门文章
优秀文章