2013-01-14 25 views

Trả lời

5

Đặt giá trị boolean thành true bất cứ khi nào bạn gọi setValue theo chương trình (trước khi gọi nó) và đặt lại thành false khi bạn xử lý sự kiện.

1

Nội bộ, ´setValue´ được gọi. Bạn có thể thử bắt sự kiện khi người dùng di chuyển núm của thanh trượt bằng cách triển khai ChangeListener để nắm bắt sự kiện đó. Ngoài ra, hãy nhớ rằng việc di chuyển núm sẽ kích hoạt nhiều sự kiện thay đổi, vì vậy nếu bạn quan tâm đến giá trị cuối cùng của thanh trượt, hãy sử dụng số getValueIsAdjusting khi nó đánh giá là false.


Nếu vấn đề được withing một ChangeListener, hãy thử mở rộng thành phần JSlider và thêm một phương pháp mới mà nhận giá trị mới và người phát hành nó (với một mã int hoặc một enum, ví dụ), phát sinh các thiết lập của giá trị sau khi bạn đặt logic tùy chỉnh của mình thành phương thức setValue thực.

Trong trường hợp của bạn, bạn sẽ muốn ngăn chặn sự xâm nhập của setValue nếu một số thành phần gọi nó, nếu tôi không nhầm.

+0

Tôi đã bắt gặp sự kiện này, vì có hai đối tượng phụ thuộc lẫn nhau và họ thay đổi một giá trị anothers để họ nhận được một vòng lặp vô hạn, đó là lý do tại sao Tôi cần phát hiện chế độ thay đổi. –

+0

@ AndrewG.H. Tôi đã cập nhật câu trả lời của mình. – Gamb

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