Tôi bị ướt chân với javafx. Đây là những gì tôi đang làm.Bộ điều khiển mỏng
FXML Views
DI Controllers
Weld-SE Managed Services and Models
Trying to confine UI to FXML
Trying keep the Controllers thin
Vấn đề:
Trong khi cố gắng để mã giao diện người dùng, giao diện người dùng tĩnh nhất là giới hạn bên trong fxml. Nhưng có những tình huống mà tôi thấy mình tự thêm, xóa, hiển thị, ẩn các phần tử, v.v.
Tôi tự làm điều này bên trong bộ điều khiển vì fx cho phép tôi cấu hình phương thức điều khiển trong giao diện mà nó sẽ gọi trên một hành động cụ thể biến cố. Tất cả các mã này đề cập đến việc xây dựng/thao tác UI động và nằm trong lớp xem. Nhưng, nó kết thúc trong bộ điều khiển làm cho bộ điều khiển chất béo.
javafx cung cấp tích hợp javascript. Đây là một cách có thể để trừu tượng mã xem manupulation đó. Nhưng điều này sẽ thêm javascript không hoàn hảo như vậy vào hỗn hợp.
Làm cách nào để tôi trừu tượng mã trong java hoặc fxml để tôi không phá vỡ Mô hình Bộ điều khiển Mỏng?
EDIT
@assylias
Đồng ý, tôi đã nghĩ về điều này và cách này mà lớp java và fxml cùng nhau trở thành một widget thể tái sử dụng. Nhưng sau đó, làm thế nào để tôi dây này vào FXML. FXML không hiểu gì ngoài bộ điều khiển. Hãy nói rằng tôi dây lớp này xem vào fxml bằng cách sử dụng fx: điều khiển và không tên nó điều khiển. Vì vậy, tôi có một cái gì đó như thế này.
Quan điểm này lớp không có gì nhưng mã xem thao tác. Sau đó, tôi sẽ tạo một lớp điều khiển khác. Nhưng sau đó tôi mong đợi bằng cách nào đó sẽ điền dữ liệu biểu mẫu vào bộ điều khiển này. Điều này chỉ xảy ra khi người dùng đã gửi biểu mẫu. Vì vậy, trong một cách, tôi cần phải nói với javafx bằng cách nào đó mà yêu cầu thao tác UI/sự kiện khác với yêu cầu/sự kiện thao tác dữ liệu thực tế.
Suy nghĩ của bạn, xin lỗi nếu nó dài dòng. Đã cố gắng để nói nó trong vài từ như tôi có thể.
Bạn có thể có chế độ xem FXML, Chế độ xem Java (lớp điều khiển đầu tiên) thực hiện công cụ động và sau đó là Bộ điều khiển Java thích hợp, mở rộng đầu tiên. (không chắc chắn rằng sẽ làm việc, chỉ là một ý tưởng). – assylias
Bạn dường như cố gắng áp dụng mẫu MVC, nhưng nó không cần thiết cho hầu hết các kịch bản. Bộ điều khiển trong Java FX không phải là bộ điều khiển của mẫu MVC như bạn đã tìm ra (Xem Lớp trong sơ đồ của bạn). Vậy bạn muốn giải quyết vấn đề gì? Bạn có thể cung cấp mẫu không? – Puce
Tôi đã hy vọng tìm hiểu làm thế nào để tổ chức tốt hơn mã của tôi và tránh lộn xộn mã. Tôi nghĩ những người khác hẳn đã gặp vấn đề này trước tôi và phải tìm ra cách giải quyết. – ShaggyInjun