Tôi đang sử dụng JavaPro ObjectProperty trong một trong các lớp của tôi. Tôi đang sử dụng nó cho các tính năng liên kết. Vấn đề là tôi muốn mọi người có thể liên kết với nó, nhưng không phải để thay đổi giá trị. Tôi không thể nghĩ ra một cách chứng minh đẳng cấp để làm điều này (nơi mọi người sẽ không có cách nào để thay đổi nó từ bên ngoài), nhưng phải có một số cách để làm điều đó.Cài đặt chỉ đọc với thuộc tính JavaFx
Trả lời
Giải pháp
Bạn đang tìm kiếm ReadOnlyObjectWrapper.
mẫu
Đây là một cách sử dụng ví dụ lấy từ một sample tic tac toe game mà tôi đã viết:
class Square {
enum State { EMPTY, NOUGHT, CROSS }
private ReadOnlyObjectWrapper<State> state =
new ReadOnlyObjectWrapper<>(State.EMPTY);
public ReadOnlyObjectProperty<State> stateProperty() {
return state.getReadOnlyProperty();
}
public State getState() {
return state.get();
}
public void pressed() {
if (!game.isGameOver() && state.get() == State.EMPTY) {
state.set(game.getCurrentPlayer());
...
}
}
}
Giải thích
Điều này cho phép nhà nước của quảng trường là một đại diện bởi một thuộc tính để người dùng bên ngoài của Square có thể liên kết với trạng thái của Square, nhưng bản thân trạng thái được đóng gói trong Square nên chỉ Quảng trường có thể thay đổi trạng thái riêng của nó.
Ví dụ về cách sử dụng cho mẫu này là đối tượng SquareSkin có chứa các nút hiển thị để đại diện cho Square. Da có thể nghe các thay đổi đối với thuộc tính trạng thái của hình vuông được liên kết và cập nhật hình ảnh mà nó sử dụng để hiển thị hình vuông một cách thích hợp. Để thực sự đảm bảo rằng các giá trị Object kèm theo trong ReadOnlyWrapper không thể thay đổi bên ngoài, tốt nhất là làm cho các giá trị Object đó là immutable (ví dụ: các đối tượng không có hàm setter, chỉ có hàm getter).
Ví dụ Hơn nữa
Mã trò chơi tôi liên kết chứa nhiều ví dụ khác về mô hình liên kết và tập quán khác nhau (tôi đã viết nó một phần như một bài tập bắt buộc để xem những gì sẽ xảy ra nếu bạn sử dụng rất nhiều ràng buộc trong một ứng dụng).
- 1. ReadOnlyListProperty JavaFX không chỉ đọc?
- 2. WCF DataContract serialization thuộc tính chỉ đọc?
- 3. Thứ tự thuộc tính cài đặt Elementtree
- 4. Các trường hoặc thuộc tính chỉ đọc
- 5. Khởi tạo thuộc tính chỉ đọc
- 6. Thiết lập thuộc tính chỉ đọc với loại vô danh
- 7. Mocking thuộc tính chỉ đọc ảo với moq
- 8. Thuộc tính tự động VB.net - chỉ đọc?
- 9. Thay đổi thuộc tính cài đặt NSIS
- 10. Ghi đè thuộc tính chỉ đọc trừu tượng để đọc/ghi thuộc tính
- 11. PIP: Chỉ cài đặt các phụ thuộc
- 12. Nhận thuộc tính động từ Cài đặt
- 13. Tại sao cài đặt ứng dụng chỉ đọc trong app.config?
- 14. Đặt thuộc tính với EventTrigger
- 15. Cài đặt thuộc tính cột bảng tính Excel
- 16. Thuộc tính chỉ đọc PropertyGrid ở cấp đối tượng
- 17. Cách xóa thuộc tính chỉ đọc của một tệp MFC
- 18. Sao chép thuộc tính NSString hoặc chỉ đọc?
- 19. Xác định thuộc tính chỉ đọc trong JavaScript
- 20. Làm cách nào để tạo thuộc tính chỉ đọc?
- 21. PHP: Thuộc tính chỉ đọc tĩnh trong lớp
- 22. WTForms hỗ trợ cho thuộc tính chỉ đọc đầu vào?
- 23. Cách đặt thuộc tính Ant chỉ khi không được đặt
- 24. Đọc thuộc tính từ tomcat
- 25. spring: đặt thuộc tính của một bean bằng cách đọc thuộc tính của bean khác?
- 26. Đọc thuộc tính tệp
- 27. php.ini không được đọc với cài đặt Windows 7
- 28. cách đặt thuộc tính chỉ đọc ở dạng zend thêm phần tử
- 29. Cách tạo thuộc tính lớp chỉ đọc bằng Python?
- 30. Xóa thuộc tính chỉ đọc khỏi thư mục
Ahhh ... Điều đó hoàn toàn có ý nghĩa. Có vẻ như phải có cách để làm điều này. Cảm ơn bạn. –