2013-04-12 22 views
7

Có hai giai đoạn khác nhau trong ứng dụng của tôi là màn hình trợ giúp sử dụng cùng một tệp FXML. Thay vì tạo 2 tệp FXML, tôi chỉ muốn sử dụng một và có hai trình điều khiển gọi cùng một fxml.Tệp JavaFX 1 FXML với nhiều bộ điều khiển khác nhau?

Vấn đề duy nhất là Bộ điều khiển được gán trong tệp FXML. Vì vậy, có cách nào để thay đổi bộ điều khiển được gán với mã trong lớp Controller không?

Tôi thực sự muốn tránh sao chép tệp FXML chỉ để thay đổi Bộ điều khiển trong mỗi. Cảm ơn trước.


Trả lời

7

Bạn có thể loại bỏ sự phân công fx:controller="" từ tập tin FXML và gán bộ điều khiển thông qua FXMLLoader trong tải.

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Your.fxml")); 
fxmlLoader.setController(this); 

try 
{ 
    fxmlLoader.load(); 
} 
catch (IOException exception) 
{ 
    throw new RuntimeException(exception); 
} 

Kiểm tra Introduction to FXML section on custom components.

+0

Sử dụng phương pháp này ngăn bạn sử dụng thẻ '@ FXML'. Bạn phải đặt tất cả chúng theo cách thủ công, điều này có thể gây phiền toái khi có chế độ xem lồng nhau. – Kiril

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