JavaFX z Arią - powrót do strony głównej

Metody fabryczne

Jeżeli klasa zawiera metodę fabryczną – możemy z niej skorzystać. Używamy atrybutu fx:factory=""

Plik listing09_object_from_fabrics_method.fxml
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>

<VBox xmlns:fx="http://javafx.com/fxml">
	<Label fx:id="lab1" text="Wybierz najładniejsze imię." />
	<ListView>
		<items>
			<FXCollections fx:factory="observableArrayList">
				<String fx:value="Urszula" />
				<String fx:value="Ula" />
				<String fx:value="Ulka" />
				<String fx:value="Ulessa" />
				<String fx:value="Uleńka" />
			</FXCollections>
		</items>
	</ListView>
</VBox>

Powyżej w FXML używamy fabryki FXCollection.observableArrayList().

Klasa Listing09_object_from_fabrics_method.java
package codes;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

import java.net.URL;
public class Listing09_object_from_fabrics_method extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage) {
        try {
            URL fxmlUrl = this.getClass().getClassLoader()
                    .getResource("resources/listing09_object_from_fabrics_method.fxml");
            VBox root = fxmlUrl != null ? FXMLLoader.load(fxmlUrl) : new VBox();
            Scene scene = new Scene(root, 150, 150);
            stage.setScene(scene);
            stage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Po uruchomieniu klasy zobaczymy:

Widok po uruchomieniu klasy
Widok po uruchomieniu klasy