JavaFx

2013-09-28 21 views
7

में एक कम्बोबॉक्स में सूची मूल्यों को कैसे पॉप्युलेट करना है मेरे पास मूल्यों की एक सूची है जिसे मैं javaFx में एक combobox में पॉप्युलेट करना चाहता हूं। यह मेरा combo.xmlJavaFx

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="- Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"> 
<children> 
<ComboBox id="comboId" layoutX="210.0" layoutY="108.0" prefHeight="27.0" prefWidth="102.0" promptText="Select"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
     <String fx:value="Item 1" /> 
     <String fx:value="Item 2" /> 
     <String fx:value="Item 3" /> 
     </FXCollections> 
    </items> 
    </Com boBox> 
    </children> 
    </AnchorPane> 

है यह मेरी मुख्य

public class JavaFXExperiment extends Application { 
@Override 
public void start(Stage stage) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getResource("combo.fxml")); 
    Scene scene = new Scene(root); 
    stage.setScene(scene); 
    stage.show(); 
    final ComboBox comboId = new ComboBox(); 
    comboId.getItems().addAll(
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]"); 
} 
    public static void main(String[] args) { 
    launch(args); 
} 
} 

यह मेरा xml फ़ाइल और मुख्य वर्ग मैं combobox.anyone में उन मूल्यों को दिखाना चाहते हैं तो कृपया मदद है

उत्तर

18

आपको एक नियंत्रक बनाना होगा और इसे अपनी FXML स्क्रीन से असाइन करना होगा।

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="- Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" fx:controller="MyController" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2"> 
<children> 
<ComboBox fx:id="myCombobox" id="comboId" layoutX="210.0" layoutY="108.0" prefHeight="27.0" prefWidth="102.0" promptText="Select"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
     <String fx:value="Item 1" /> 
     <String fx:value="Item 2" /> 
     <String fx:value="Item 3" /> 
     </FXCollections> 
    </items> 
    </ComboBox> 
    </children> 
    </AnchorPane> 

फिर अपने मुख्य वर्ग होगा,

public class JavaFXExperiment extends Application { 
@Override 
public void start(Stage stage) throws Exception { 

    FXMLLoader loader = new FXMLLoader(getClass().getResource("combo.fxml")); 
    Parent root = loader.load(); 

    MyController myController = loader.getController(); 

    Scene scene = new Scene(root); 
    stage.setScene(scene); 
    stage.show(); 

    //Set Data to FXML through controller 
    myController.setData(); 
} 
    public static void main(String[] args) { 
    launch(args); 
} 
} 

और अपने नियंत्रक, हो जाएगा

public class MyController implements Initializable 
{ 

@FXML 
public Combobox myCombobox; 

@Override 
    public void initialize(URL url, ResourceBundle rb) { 
} 

public void setData(){ 

myCombobox.getItems().clear(); 

myCombobox.getItems().addAll(
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]"); 

} 
} 
+0

धन्यवाद, यह भी जब एक नई विंडो खोलने काम करता है। – lmiguelvargasf

+0

'@FXML सार्वजनिक कॉम्बोबॉक्स myCombobox;' – saikosen

 संबंधित मुद्दे