Trong ứng dụng Java GUI "nghiêm trọng", bạn sẽ có các mô hình đằng sau nhiều phần tử GUI của mình: A DocumentModel
sao lưu JEditorPane
, ví dụ hoặc ListModel
đằng sau một JList
.Có thể thay đổi mô hình bên ngoài chuỗi công nhân Swing không?
Chúng tôi luôn được yêu cầu không thực hiện thay đổi GUI từ bên ngoài chuỗi công nhân Swing và được cung cấp SwingUtilities.invoke...()
để giải quyết vấn đề đó. Được rồi, tôi có thể sống với điều đó! Nó chắc chắn là cần thiết (và hoạt động tốt) khi thay đổi các thuộc tính của các thành phần GUI trực tiếp.
Lý tưởng nhất, hầu hết các thay đổi có thể nhìn thấy GUI của tôi sẽ là các mô hình, chứ không phải đối với JComponents. Nhưng bởi vì chúng có khả năng hiển thị GUI, chúng có "đếm" dưới dạng thay đổi GUI không? I E. thay đổi các sự kiện và người nghe cung cấp sự tách rời cần thiết, hoặc thay đổi mô hình cần phải được bao bọc trong invoke...()
không?
Có lẽ chiếc mũ cũ để xoay ưu, nhưng tôi không thể tìm thấy bất kỳ tham chiếu nào nêu rõ cách này hay cách khác.
-1: Không phải là câu trả lời tôi muốn nghe! (Chỉ đùa thôi, +1) Cảm ơn bạn! –
Liên quan đến việc gỡ rối các vấn đề về chuỗi Swing, tôi đặc biệt khuyên bạn nên liên kết này: http://weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html CheckThreadViolationRepaintManager đã lưu tôi rất nhiều thời gian. –
Văn bản xoay có * một số * chuyển sự kiện sang EDT. Tất nhiên nó chỉ làm cho một mớ hỗn độn lớn hơn. –