tutorial que espaƱol javafx javafx-2 fxml

que - javafx label xml



Rellenar ListView en una aplicaciĆ³n con FXML (2)

Tengo la aplicación JavaFX usando FXML para construir su GUI.

Cuando se lanza esta aplicación, necesito tener ListView, que tiene algunos valores cargados, por ejemplo, de la base de datos. Entonces, ¿cómo puedo hacer esto?

Sé cómo hacer aplicaciones, que carga elementos a ListView después de que el usuario hace clic en un botón, o algo así (atributo "onAction" en FXML). Pero esto no me satisface, ya que necesito que los elementos se carguen automáticamente en ListView.


Si tiene un fxml con Controller, como el siguiente:

<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="test.Sample"> <children> <ListView fx:id="listView"/> </children> </AnchorPane>

puedes simplemente implementar Initializable en tu Controlador:

public class Sample implements Initializable { @FXML private ListView listView; @Override public void initialize(URL url, ResourceBundle rb) { // change next line to DB load List<String> values = Arrays.asList("one", "two", "three"); listView.setItems(FXCollections.observableList(values)); } }


Esto llena mi casilla de selección con las cinco tasas de baudios predeterminadas. Supongo que si intentas agregar elementos desde tu controlador, la lista solo muestra esos valores (no probados).

<ChoiceBox fx:id="baudRates" layoutX="234.0" layoutY="72.0"> <items> <FXCollections fx:factory="observableArrayList"> <String fx:value="4800" /> <String fx:value="9600" /> <String fx:value="19200" /> <String fx:value="57600" /> <String fx:value="115200" /> </FXCollections> </items> </ChoiceBox>

También debe incluir la siguiente declaración de importación en su FXML:

<?import javafx.collections.*?>