我剛開始使用JavaFX,並且已經需要一些建議。我使用MainApplication的start(Stage ...)
方法中的FXMLLoader加載了applicaton.fxml
(使用Oracle SceneBuiler創建),該方法在我的application.fxml
文件中指定了一個ApplicationController。JavaFX /如何在啓動時加載/填充值?
<AnchorPane id="AnchorPane" disable="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" styleClass="theme" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="app.AppController">
...more code here...
<ComboBox id="cmb_locations" fx:id="cmb_locations">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Item 1" />
<String fx:value="Item 2" />
<String fx:value="Item 3" />
</FXCollections>
</items>
</ComboBox>
現在,我在applicaton.fxml
,其中有三個項目(默認項)一ComboBox
。我需要的是在創業期間用我自己的價值觀填充ComboBox
。有誰知道如何做到這一點,並在哪裏把相關的代碼片段(app.AppController
或類似的東西)?提前致謝。
btw。 'public void initialize(URL location,ResourceBundle resources)'和(由SceneBuilder創建的)'void initialize()'方法有什麼區別? – nyyrikki
我正在使用NetBeans,當我從模式創建帶有控制器的fxml時,它會爲此方法生成'public'訪問權限。我在Initializable接口(javafx ver 2.2.25)中將此方法設置爲'public'。所以不確定SB爲什麼要採用封裝私有。 – flyer
@nyyrikki'公共無效初始化(URL位置,ResourceBundle資源)'是舊版本。現在你只需要寫'void initialize();'新版本。 – UnKnown