1
如果我有一個可變大小的數組(例如一張卡片數組)。如何構建一些東西來顯示元素(例如在FlowPane中),並且每個元素都有自己的控制器(每個卡的fxml +控制器),因此元素(卡片)的容器(流程窗格)可以讓它的元素交換,刪除或添加新元素?FlowPane中的可變大小陣列
控制器:
public class HandController extends FlowPane implements Initializable{
@Override public void initialize(URL arg0, ResourceBundle arg1){
}
public void setHand(ArrayList<Cards> Hand){
//this would work if the hand were static
for(int i = 0; i < Hand.size(); ++i){
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("CardView.fxml"));
CardController controller = new CardController();
fxmlLoader.setController(controller);
fxmlLoader.setRoot(controller);
Parent card = (Parent)fxmlLoader.load();
fxmlLoader.setRoot(card);
this.getChildren().add(card);
controller.setCard(Hand.get(i));
}
}
}
FXML:
<fx:root type="FlowPane" xmlns:fx="http://javafx.com/fxml"
stylesheets="view/Style.css">
<children>
<!--should i put something here?-->
</children>
</fx:root>
我明白了,非常感謝你,所以每次我做什麼用的手,我有調用'setHand()'? (如果可以像TableView那樣通過其ObserbableList自動完成,將會很好) – user1090694 2013-03-01 20:01:52
如果將setHand()參數更改爲ObservableList並添加通訊錄偵聽器,您可以實現自動化。 – 2013-03-01 20:05:00
所以在'setHand()'我應該在ObserbableList上添加一個監聽器,因爲每當列表大小受到影響時,我們現在可以用'setHand()'更新控制器上的卡片(可能稱之爲'updateHand()'現在)? – user1090694 2013-03-01 20:24:12