Tôi có một tệp FXML có các nút có thuộc tính onMouseClicked. Tôi không thiết lập một bộ điều khiển trong FXML vì tôi có dữ liệu được xây dựng đã được chèn vào bộ điều khiển mà tôi muốn cung cấp cho Bộ điều khiển."Không có bộ điều khiển nào được chỉ định cho phần tử cấp cao nhất" khi lập trình thiết lập Bộ điều khiển
<Button mnemonicParsing="false" onMouseClicked="#newWidgetRequestButtonClicked" text="New Widget..." />
Tôi đang đặt Trình điều khiển theo chương trình và bộ điều khiển của tôi chứa các phương pháp được chỉ định trong FXML. Các chức năng điều khiển thực thi, và mọi thứ hoạt động tốt.
FXMLLoader loader = new FXMLLoader(getClass().getResource("MainView.fxml"));
MyController controller = new MyController(...);
loader.setController(controller);
Vấn đề của tôi nằm trong việc kiểm tra tệp .fxml của IntelliJ. Trên mỗi lần xuất hiện của tham chiếu hàm, nó báo cáo "Lỗi: (45, 54) Không có bộ điều khiển nào được chỉ định cho phần tử cấp cao nhất". Tôi đang xem xét các quy tắc kiểm tra của IntelliJ và không thấy quy tắc này trong phần JavaFX. Một lần nữa, chương trình xây dựng và chạy tốt, vì vậy nó không phải là một lỗi biên dịch thực sự. Tôi muốn vô hiệu hóa thông báo lỗi này.
Làm cách nào để tránh lỗi này?
nếu bạn xác định trình điều khiển đó, khi bạn cố gắng tiếp cận các trường văn bản, các nút trong lớp điều khiển của bạn, bạn sẽ nhận được ngoại lệ nullpointer. –