VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Java AWT

Bài tập Java Swing

Giải phương trình bậc 2 Đồng hồ trong Java Swing Đếm số từ của một chuỗi Truyền file bằng giao thức TCP/IP Java Swing - Bài tập quản lý sinh viên

Java Swing

Swing trong java Lớp JLabel trong Java Swing Lớp JButton trong Java Swing Lớp JTable trong Java Swing Lớp Graphics trong Java Swing Lớp JColorchooser trong Java Swing Lớp JCheckbox trong Java Swing Lớp JRadiobutton trong Java Swing Lớp JList trong Java Swing Lớp JCombobox trong Java Swing Lớp JTextfield trong Java Swing Lớp JTextarea trong Java Swing Lớp Imageicon trong Java Swing Lớp JScrollbar trong Java Swing Lớp JOptionPane trong Java Swing Lớp JFileChooser trong Java Swing Lớp JProgressbar trong Java Swing Lớp JSlider trong Java Swing Lớp JSpinner trong Java Swing Lớp JPanel trong Java Swing Lớp JFrame trong Java Swing Lớp JWindow trong Java Swing Lớp JMenubar trong Java Swing Lớp JMenuItem trong Java Swing Lớp JMenu trong Java Swing Lớp JCheckboxMenuItem trong Java Swing Lớp JRadioButtonMenuItem trong Java Swing Lớp JPopupMenu trong Java Swing

Java Swing - Layout

Layout trong Java Swing BoxLayout trong Java Swing BorderLayout trong Java Swing CardLayout trong Java Swing FlowLayout trong Java Swing GridLayout trong Java Swing GridbagLayout trong Java Swing GroupLayout trong Java Swing SpringLayout trong Java Swing

Java Swing - Event Listener

Xử lý sự kiện trong Java Swing Event Listener trong Java Swing Event Adapter trong Java Swing Action Listener trong Java Swing Component Listener trong Java Swing ItemListener trong Java Swing KeyListener trong Java Swing MouseListener trong Java Swing WindowListener trong Java Swing AdjustmentListener trong Java Swing ContainerListener trong Java Swing MouseMotionListener trong Java Swing FocusListener trong Java Swing Lớp FocusAdapter trong Java Swing Lớp KeyAdapter trong Java Swing Lớp MouseAdapter trong Java Swing Lớp MouseMotionAdapter trong Java Swing Lớp WindowAdapter trong Java Swing
Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Xử lý sự kiện trong Java Swing


SpringLayout trong Java Swing
Event Listener trong Java Swing


Nội dung chính

  • Sự kiện (Event) là gì?
  • Lớp EventObject trong Java Swing
  • Các lớp Event trong Java Swing
    • Lớp AWTEvent
    • Lớp ActionEvent
    • Lớp InputEvent
    • Lớp KeyEvent
    • Lớp MouseEvent
    • Lớp WindowEvent
    • Lớp AdjustmentEvent
    • Lớp ComponentEvent
    • Lớp ContainerEvent
    • Lớp MouseMotionEvent
    • Lớp PaintEvent

Sự kiện (Event) là gì?

Event là một sự thay đổi trong trạng thái của đối tượng, chẳng hạn như sự kiện mô tả sự thay đổi trong trạng thái của source. Các sự kiện được tạo ra là do tương tác của người dùng với các thành phần UI. Ví dụ như việc nhấn vào một nút button, di chuyển chuột, nhập ký tự thông qua bàn phím, … Các sự kiện có thể được phân chia thành hai loại sau:

Foreground Event: Những sự kiện này yêu cầu tương tác trực tiếp của người dùng. Chúng được tạo ra do tương tác của người dùng với các thành phần đồ họa trong Graphical User Interface. Ví dụ như nhấn vào một nút, di chuyển chuật, chọn một item từ list, …

Background Event: Các sự kiện này yêu cầu tương tác của người dùng cuối cùng, ví dụ như tín hiệu ngắt hệ điều hành, hardware hoặc software failure …

Xử lý sự kiện (Event Handling) là gì?

Xử lý sự kiện (Event Handling) là một kỹ thuật kiểm soát sự kiện và quyết định những gì cần thực hiện nếu một sự kiện xảy ra. Kỹ thuật này có code, mà được biết như là Event Handler, được thực thi khi một sự kiện xảy ra. Java sử dụng Delegation Event Model để xử lý các sự kiện. Model này định nghĩa kỹ thuật chuẩn để tạo và xử lý các sự kiện. Model này bao gồm hai thành phần quan trọng sau:

Source: đây là một đối tượng mà trên đó sự kiện xuất hiện. Source chịu trách nhiệm cung cấp thông tin về sự kiện đã xảy ra tới bộ xử lý Handler của nó.

Listener: Còn được biết như là Event Handler. Listener chịu trách nhiệm tạo phản hồi tới một sự kiện. Theo quan điểm của Java, Listener cũng là một đối tượng. Listener đợi tới khi nó nhận một sự kiện. Khi một sự kiện đã được nhận, Listener xử lý sự kiện đó và sau đó trả về kết quả.


Lớp EventObject trong Java Swing

Đây là lớp gốc (root class) từ đó tất cả đối tượng về trạng thái sự kiện sẽ được kế thừa. Tất cả sự kiện được xây dựng với một tham chiếu tới đối tượng đó, là source. Lớp này được định nghĩa trong java.util package. Cú pháp khai báo của lớp java.util.EventObject như sau:


public class EventObject
   extends Object
      implements Serializable

Lớp EventObject có một trường là protected Object source. Đây là đối tượng mà trên đó sự kiện được xảy ra.

Lớp EventObject có một constructor là EventObject(Object source) dùng để xây dụng một nguyên mẫu sự kiện.

Các phương thức của lớp EventObject:

  • Object getSource(): Đối tượng mà trên đó sự kiện xảy ra.

  • String toString(): Trả về một biểu diễn chuỗi của EventObject này.

Lớp này kế thừa các phương thức từ lớp java.lang.Object.


Các lớp Event trong Java Swing

Ngoài lớp EventObject trên, phần dưới đây giới thiệu cho bạn một số Event Class được sử dụng phổ biến khác.

Lớp AWTEvent

Đây là lớp sự kiện gốc (root class) cho tất cả sự kiện AWTEvent. Lớp này và các lớp con của nó thay thế lớp ban đầu java.awt.Event. Lớp này được định nghĩa trong java.awt package. Lớp AWTEvent có phương thức getID() được sử dụng để xác định kiểu của sự kiện. Cú pháp khai báo của lớp java.awt.AWTEvent là:


public class AWTEvent
   extends EventObject

Lớp ActionEvent

Lớp ActionEvent được định nghĩa trong java.awt.event package. ActionEvent được tạo ra khi một nút được nhấn hoặc một item của một danh sách được nhấn đúp. Cú pháp khai báo cho lớp ActionEvent như sau:


public class ActionEvent
   extends AWTEvent

Lớp InputEvent

Lớp InputEvent là lớp sự kiện gốc (root class) cho tất cả sự kiện lien quan tới đầu vào (cấp độ thành phần). Các sự kiện liên quan tới đầu vào (input event) được phân phối bởi Listener trước khi chúng được xử lý một cách thông thường bởi source, nơi chúng sinh ra. Điều này cho phép các Listener và các lớp thành phần con có thể "consume" sự kiện để mà source sẽ không xử lý chúng theo phương thức mặc định. Cú pháp khai báo của lớp java.awt.event.InputEvent là:


public abstract class InputEvent
   extends ComponentEvent

Lớp KeyEvent

Sự kiện liên quan tới phím (Key Event) được tạo ra khi bạn nhập ký tự. Có ba kiểu key event, mà được biểu diễn bởi các hằng nguyên, chúng là:

  • KEY_PRESSED

  • KEY_RELASED

  • KEY_TYPED

Cú pháp khai báo của lớp java.awt.evetn.KeyEvent như sau:


public class KeyEvent
   extends InputEvent

Lớp MouseEvent

Sự kiện này chỉ một hoạt động liên quan tới chuột xảy ra trong một thành phần. Sự kiện tầm thấp này được tạo bởi một đối tượng Component cho các sự kiện liên quan tới chuột và di chuyển chuột, chẳng hạn như một nút chuột được nhấn, được nhả ra, được click (nhấn và nhả ra), di chuyển chuột, kéo chuột, …

Cú pháp khai báo cho lớp java.awt.event.MouseEvent:


public class MouseEvent
   extends InputEvent

Lớp WindowEvent

Đối tượng của lớp này biểu diễn thay đổi về trạng thái của một cửa sổ. Sự kiện tầm thấp này được tạo bởi một đối tượng Window khi nó được mở, đóng, kích hoạt, … hoặc khi trọng tâm focus được chuyển vào trong hoặc ngoài Window. Cú pháp khai báo của lớp java.awt.event.WindowEvent là:


public class WindowEvent
   extends ComponentEvent

Lớp AdjustmentEvent

Lớp AdjustmentEvent biểu diễn các sự kiện liên quan tới sự căn chỉnh được tạo bởi các đối tượng có thể căn chỉnh (Adjustable object). Cú pháp khai báo của lớp java.awt.event.AdjustmentEvent là như sau:


public class AdjustmentEvent
   extends AWTEvent

Lớp ComponentEvent

Lớp ComponentEvent biểu diễn rằng một thành phần bị di chuyển, thay đổi kích cỡ, hoặc thay đổi tính nhìn thấy. Cú pháp khai báo của lớp java.awt.event.ComponentEvent là:


public class ComponentEvent
   extends AWTEvent

Lớp ContainerEvent

Lớp ContainerEvent biểu thị rằng các nội dung của một container đã thay đổi bởi vì một thành phần đã được thêm vào hoặc bị gỡ bỏ. Cú pháp khai báo của lớp java.awt.event.ContainerEvent là:


public class ContainerEvent
   extends ComponentEvent

Lớp MouseMotionEvent

Lớp MouseMotionEvent chỉ một hành động liên quan tới chuột (mouse action) đã xảy ra trong một thành phần. Sự kiện tầm thấp này được tạo bởi một đối tượng Component khi chuột bị kéo hoặc di chuyển. Cú pháp khai báo cho lớp java.awt.event.MouseMotionEvent là:


public class MouseMotionEvent
   extends InputEvent

Lớp PaintEvent

Lớp PaintEvent được sử dụng để bảo đảm rằng các lời gọi phương thức paint/update được xếp thứ tự theo các sự kiện khác được phân phối từ hàng sự kiện (event queue). Cú pháp khai báo cho lớp java.awt.event.PaintEvent là:


public class PaintEvent
   extends ComponentEvent

SpringLayout trong Java Swing
Event Listener trong Java Swing

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml