我想傳遞一個字符串變量列表到自定義控制器FXML,即:返回值並不如預期
<Pane xmlns:fx="http://javafx.com/fxml" >
<VBox fx:id="vbox">
<StepChart fx:id="employment" title="Unemployment" enabled = "true" prefHeight="250.0" prefWidth="300.0">
<statistics>
<FXCollections fx:factory="observableArrayList" >
<String fx:value="employees"/>
<String fx:value="farms"/>
</FXCollections>
</statistics>
</StepChart>
</VBox>
</Pane>
統計數據將被標記爲StepChart的@DefaultProperty,但爲了完整而包括在這裏。在StepChart我拿起觀察到列表中的值如下:
ArrayList<String> list = new ArrayList<String>();
ObservableList<String> statistics = FXCollections.observableArrayList(list);
statistics.addListener(new ListChangeListener<String>()
{
@Override
public void onChanged(ListChangeListener.Change<? extends String> change)
{
for(String s: statistics)
{
System.out.println("s: " + s);
}
}
});
所有在它完美的作品,除了不是單獨的字符串列表中,FXML正在生成一個字符串,與FXML值:
s: [employees, farms]
即使Introduction to fxml說,它「創建一個可觀察的數組列表的一個實例,填充了三個字符串值」。我是否錯過了關於如何處理observablelist的問題,或者這是否是預期的行爲?
'StepChart'有'setStatistics(列表)'方法,還是'getStatistics()'? –
2014-10-29 20:54:28
呃。就是這樣 - 非常感謝。 – Lumi 2014-10-30 00:27:39
如果你的'StepChart'類沒有意義,你不需要'setStatistics(...)'方法。我會把所有的東西放在一起作爲實際的答案,因爲其他人可能從這些信息中受益。 – 2014-10-30 00:55:30