Một chương trình ví dụ KeyListener (với mã Java)

01 trên 01

Danh sách mã Java

© Hình ảnh CZQS2000 / STS / Photodisc / Getty

Mã Java sau đây cho thấy một chương trình ví dụ thực hiện giao diện > KeyListener . Khi được thực hiện, mã Java sẽ hiển thị một giao diện người dùng đồ họa Swing rất đơn giản.

GUI được tạo thành từ một > JFrame chứa hai > JTextAreas . Đầu tiên, > feedbackText > JTextArea , được đặt bên trong một > JScrollPane và được sử dụng để hiển thị văn bản sinh ra bởi các sự kiện > KeyListener . > JScrollPane cho phép người dùng xem tất cả các dòng văn bản được tạo bởi các sự kiện KeyListener .

Thứ hai là > inputText JTextArea . Điều này > JTextArea có tiêu điểm và sẽ tạo ra các sự kiện KeyListener khi người dùng nhập vào nó. Theo mặc định. > inputArea JTextArea sẽ có tiêu điểm khi JFrame xuất hiện.

Giao diện KeyListener có thể đã được triển khai như một lớp riêng biệt, hoặc mở rộng > JFrame , nhưng trong trường hợp này sử dụng một lớp bên trong vô danh có ý nghĩa nhất.

Phương thức keyPressed được gọi khi người dùng nhấn xuống một phím và phương thức > keyReleased được gọi khi một khóa được giải phóng. Phương thức > keyTyped được gọi khi một phím ký tự được nhập vào > inputText JTextArea .

> nhập java.awt.BorderLayout; import java.awt.EventQueue; nhập khẩu java.awt.event.KeyEvent; nhập khẩu java.awt.event.KeyListener; nhập javax.swing.JFrame; nhập javax.swing.JTextArea; import javax.swing.JScrollPane; // Đây là một lớp cho GUI đơn giản sử dụng JFrame // để giữ cho JTextAreas – một sẽ lắng nghe các sự kiện quan trọng // và cái kia sẽ nằm bên trong một JScrollPane cung cấp phản hồi // về các sự kiện KeyListener đang được kích hoạt lớp công khai KeyListenerExample {JTextArea inputText; JTextArea feedbackText; // Lưu ý: Thông thường, phương thức chính sẽ nằm trong một lớp // riêng biệt. Vì đây là một lớp đơn giản // ví dụ, tất cả đều nằm trong một lớp. public static void main (String [] args) {// Sử dụng event dispatch thread cho các thành phần Swing EventQueue.invokeLater (new Runnable () {@Override public void run () {new KeyListenerExample ();}}); } public KeyListenerExample () {JFrame guiFrame = new JFrame (); // đảm bảo chương trình thoát khi khung đóng guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle (“Tạo một ví dụ bảng”); guiFrame.setSize (700.200); // Điều này sẽ căn giữa JFrame ở giữa màn hình guiFrame.setLocationRelativeTo (null); // JTextArea này được sử dụng để hiển thị thông tin về // các sự kiện keylistener. Nó nằm trong một JScrollPane // để cho phép cuộn qua tất cả các sự kiện được kích hoạt feedbackText = new JTextArea (); JScrollPane scrollText = new JScrollPane (feedbackText); // JTextArea này sẽ kích hoạt các sự kiện KeyListener như // miễn là nó giữ tiêu điểm inputText = new JTextArea (); // Giao diện KeyListener được thực hiện như một lớp bên trong // ẩn danh sử dụng phương thức addKeyListener. inputText.addKeyListener (new KeyListener () {// Khi bất kỳ phím nào được nhấn và nhả ra thì các phương thức // keyPressed và keyReleased được gọi tương ứng. // Phương thức keyTyped được gọi khi một ký tự hợp lệ được gõ. Nếu phím // là phím bổ trợ (ví dụ: SHIFT, CTRL) hoặc phím tác vụ (ví dụ: DELETE, ENTER) // thì ký tự sẽ là biểu tượng không xác định. @Override public void keyPressed (KeyEvent) e) {feedbackText.append (“Đã nhấn phím:” + e.getKeyChar () + “\ n”);} @Override khóa void công khaiĐược phát hành (KeyEvent e) {feedbackText.append (“Key Released:” + e.getKeyChar ( ) + “\ n”);} @Override public void keyTyped (KeyEvent e) {// Phương thức getKeyModifiers là một cách // tiện dụng để lấy một String đại diện cho khoá // modifier. feedbackText.append (“Key Typed:” + e.getKeyChar () + “” + KeyEvent.getKeyModifiersText (e.getModifiers ()) + “\ n”);}}); guiFrame.add (inputText, BorderLayout.NORTH); guiFrame.add (scrollText, BorderLayout.CENTER); guiFrame.setVisible (true); }}

> nhập java.awt.BorderLayout; import java.awt.EventQueue; nhập khẩu java.awt.event.KeyEvent; nhập khẩu java.awt.event.KeyListener; nhập javax.swing.JFrame; nhập javax.swing.JTextArea; import javax.swing.JScrollPane; // Đây là một lớp cho GUI đơn giản sử dụng JFrame // để giữ cho JTextAreas – một sẽ lắng nghe các sự kiện quan trọng // và cái kia sẽ nằm bên trong một JScrollPane cung cấp phản hồi // về các sự kiện KeyListener đang được kích hoạt lớp công khai KeyListenerExample {JTextArea inputText; JTextArea feedbackText; // Lưu ý: Thông thường, phương thức chính sẽ nằm trong một lớp // riêng biệt. Vì đây là một lớp đơn giản // ví dụ, tất cả đều nằm trong một lớp. public static void main (String [] args) {// Sử dụng event dispatch thread cho các thành phần Swing EventQueue.invokeLater (new Runnable () {@Override public void run () {new KeyListenerExample ();}}); } public KeyListenerExample () {JFrame guiFrame = new JFrame (); // đảm bảo chương trình thoát khi khung đóng guiFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); guiFrame.setTitle (“Tạo một ví dụ bảng”); guiFrame.setSize (700.200); // Điều này sẽ căn giữa JFrame ở giữa màn hình guiFrame.setLocationRelativeTo (null); // JTextArea này được sử dụng để hiển thị thông tin về // các sự kiện keylistener. Nó nằm trong một JScrollPane // để cho phép cuộn qua tất cả các sự kiện được kích hoạt feedbackText = new JTextArea (); JScrollPane scrollText = new JScrollPane (feedbackText); // JTextArea này sẽ kích hoạt các sự kiện KeyListener như // miễn là nó giữ tiêu điểm inputText = new JTextArea (); // Giao diện KeyListener được thực hiện như một lớp bên trong // ẩn danh sử dụng phương thức addKeyListener. inputText.addKeyListener (new KeyListener () {// Khi bất kỳ phím nào được nhấn và nhả ra thì các phương thức // keyPressed và keyReleased được gọi tương ứng. // Phương thức keyTyped được gọi khi một ký tự hợp lệ được gõ. Nếu phím // là phím bổ trợ (ví dụ: SHIFT, CTRL) hoặc phím tác vụ (ví dụ: DELETE, ENTER) // thì ký tự sẽ là biểu tượng không xác định. @Override public void keyPressed (KeyEvent) e) {feedbackText.append (“Đã nhấn phím:” + e.getKeyChar () + “\ n”);} @Override khóa void công khaiĐược phát hành (KeyEvent e) {feedbackText.append (“Key Released:” + e.getKeyChar ( ) + “\ n”);} @Override public void keyTyped (KeyEvent e) {// Phương thức getKeyModifiers là một cách // tiện dụng để lấy một String đại diện cho khoá // modifier. feedbackText.append (“Key Typed:” + e.getKeyChar () + “” + KeyEvent.getKeyModifiersText (e.getModifiers ()) + “\ n”);}}); guiFrame.add (inputText, BorderLayout.NORTH); guiFrame.add (scrollText, BorderLayout.CENTER); guiFrame.setVisible (true); }}