2013-02-24 23 views
8

Bản thân tôi, tôi luôn sử dụng ActionListener làm bộ xử lý sự kiện xoay (ví dụ: nhấp vào nút) và đó là trình nghe phổ biến nhất mà tôi đã thấy trong hầu hết các ứng dụng xoay vòng.Điều gì là tốt hơn để sử dụng: Hành động vs ActionListener?

Tuy nhiên, một số chuyên gia Swing ở đây trong lưu lượng truy cập thường khuyên sử dụng Action thay vì ActionListener. Tôi có được lợi ích gì khi làm như vậy?

+1

Hành động có thể chia sẻ, có thể chặn, có thể đặt. – mKorbel

Trả lời

10

An Action được ưu tiên nếu bạn cần chia sẻ chức năng giữa các thành phần. Từ docs

nếu bạn có hai hay nhiều thành phần mà thực hiện các chức năng tương tự, xem xét sử dụng một đối tượng hành động để thực hiện các chức năng.

mà còn nói

Một đối tượng hành động là một người biết lắng nghe hành động mà không chỉ cung cấp xử lý hành động sự kiện, mà còn xử lý tập trung của Nhà nước của các thành phần hành động sự kiện bắn như các nút thanh công cụ , các mục menu, các nút thông thường và các trường văn bản. Trạng thái mà một hành động có thể xử lý bao gồm văn bản, biểu tượng, trạng thái ghi nhớ, đã bật và đã chọn.

+1

+1 cho 'Hành động'; ['FileMenu'] (http://stackoverflow.com/a/4039359/230513) là một ví dụ cơ bản. Lợi ích của việc thực hiện nó là không phải làm điều đó sau này. :-) – trashgod

+1

Điều gì về việc tạo một trình lắng nghe hành động đơn lẻ và thêm cùng một tham chiếu đến nhiều thành phần xoay qua 'addActionListener()'? Nó không giống nhau sao? –

+4

@ Eng.Fouad: Các hành động có các tính năng bổ sung khác không được tìm thấy với ActionListeners bao gồm khả năng giữ biểu tượng, các phím ghi nhớ, mô tả và giữ bất kỳ khóa giá trị nào bạn muốn. –

Các vấn đề liên quan