Một ví dụ khá hay mô tả về cách sử dụng sự kiện của bàn phím (key event) trong ngôn ngữ lập trinh Java. Khi bạn gõ một chữ vào ô text field nhỏ thì tại TextArea sẽ hiển thị ra thông tin bạn vừa nhấ phím... |
Mã nguồn - Source code:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
// An AWT GUI program inherits from the top-level container java.awt.Frame
public class KeyEventDemo extends Frame implements KeyListener {
// This class acts as KeyEvent Listener
private TextField tfInput; // single-line TextField to receive tfInput key
private TextArea taDisplay; // multi-line TextArea to taDisplay result
/**
* Constructor to setup the GUI
*/
public KeyEventDemo() {
setLayout(new FlowLayout()); // "super" frame sets to FlowLayout
add(new Label("Enter Text: "));
tfInput = new TextField(10);
add(tfInput);
taDisplay = new TextArea(5, 40); // 5 rows, 40 columns
add(taDisplay);
tfInput.addKeyListener(this);
// tfInput TextField fires KeyEvent to its registered KeyListeners
// tfInput adds "this" object as a KeyEvent listener
setTitle("KeyEvent Demo"); // "super" Frame sets title
setSize(400, 200); // "super" Frame sets initial size
setVisible(true); // "super" Frame shows
}
/**
* The entry main() method
*/
public static void main(String[] args) {
new KeyEventDemo(); // Let the constructor do the job
}
/**
* KeyEvent handlers
*/
// Called back when a key has been typed (pressed and released)
@Override
public void keyTyped(KeyEvent e) {
taDisplay.append("You have typed " + e.getKeyChar() + "\n");
}
// Not Used, but need to provide an empty body for compilation
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
}
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
// An AWT GUI program inherits from the top-level container java.awt.Frame
public class KeyEventDemo extends Frame implements KeyListener {
// This class acts as KeyEvent Listener
private TextField tfInput; // single-line TextField to receive tfInput key
private TextArea taDisplay; // multi-line TextArea to taDisplay result
/**
* Constructor to setup the GUI
*/
public KeyEventDemo() {
setLayout(new FlowLayout()); // "super" frame sets to FlowLayout
add(new Label("Enter Text: "));
tfInput = new TextField(10);
add(tfInput);
taDisplay = new TextArea(5, 40); // 5 rows, 40 columns
add(taDisplay);
tfInput.addKeyListener(this);
// tfInput TextField fires KeyEvent to its registered KeyListeners
// tfInput adds "this" object as a KeyEvent listener
setTitle("KeyEvent Demo"); // "super" Frame sets title
setSize(400, 200); // "super" Frame sets initial size
setVisible(true); // "super" Frame shows
}
/**
* The entry main() method
*/
public static void main(String[] args) {
new KeyEventDemo(); // Let the constructor do the job
}
/**
* KeyEvent handlers
*/
// Called back when a key has been typed (pressed and released)
@Override
public void keyTyped(KeyEvent e) {
taDisplay.append("You have typed " + e.getKeyChar() + "\n");
}
// Not Used, but need to provide an empty body for compilation
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
}
Kết quả - Result:
Source: ntu
No comments:
Post a Comment