01/10/2018, 15:45
Load FXML trong 1 FXML cha và kích hoạt event từ FXML cha
Em đang gặp 1 vấn đề đó là không biết làm sao để gọi 1 component từ FXML cha. 2 file FXML cha và con là riêng biệt, em chỉ load cái fxml phía trong 1 pane của FXML cha. Giờ em muốn bấm button trong FXML con thì gọi tới 1 component trong lớp cha. Cái này nó kiểu gọi 1 component của 1 FXML từ 1 FXML khác. Cần cao nhân chỉ điểm

Bài liên quan
Tùy vào cách sử dụng của bạn, thiết kết của bạn, cần chú ý những concepts sau bạn sẽ tìm ra:
Hoặc con giữ “reference” Controller của cha. Bản thân controller của cha có thể truy trực tiếp đến node con cần thiết.
Hoặc con giữ “reference” của node cha. Từ node cha có thể truy theo concept như DOM với
lookup(String s)
, trong đó s là class của node hoặc id của node.Ko giữ “reference” gì cả, truy ngược với
getParent()
rồi lài truy xuôi vớilookup()
.PS: Javafx bạn bạn nên đổi cách gọi “component” -> node.
Em không hiểu lắm về cụm từ reference, anh có thể giải thích thêm được không ạ?. Em cảm ơn
4 . Controller của node cha giữ “reference” của controller con. Đứng ở context của cha để add
EventHandler
vào con, trongEventHandler
thích làm gì với thành phần của cha thì làm.5 . Tại node con,
fireEvent()
. Cha là container của con nên nằm sẵn trongdispatchain
, gắnEventHandler
cho node cha với event này. TrongEventHandler
thích làm gì thì làm. Cách này cũng ko phải quan tâm đến reference nào cả.Nếu bạn học C++ thì biết reference là gì, tham chiếu tới đối tượng / biến. nhưng đây là Java, mình tạm gọi là “reference”.