🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi su JavaFX

Codegrind Team•Jul 12 2024

Ecco degli esercizi con soluzione per praticare l’uso di JavaFX in Java.

Esercizio 1: Creazione di una Finestra Semplice

Creare una finestra JavaFX semplice con un titolo e dimensioni specifiche.
import javafx.application.Application;
import javafx.stage.Stage;

public class FinestraSemplice extends Application {
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Finestra Semplice");
        primaryStage.setWidth(400);
        primaryStage.setHeight(300);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 2: Aggiunta di un Bottone

Aggiungere un bottone a una finestra JavaFX e gestire l'evento di clic sul bottone.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class BottoneEsempio extends Application {
    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button("Clicca Me");
        btn.setOnAction(e -> System.out.println("Bottone cliccato!"));

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 400, 300);
        primaryStage.setTitle("Bottone Esempio");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 3: Layout con VBox

Utilizzare un layout VBox per posizionare più elementi verticalmente.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class LayoutVBox extends Application {
    @Override
    public void start(Stage primaryStage) {
        VBox vbox = new VBox();

        Button btn1 = new Button("Bottone 1");
        Button btn2 = new Button("Bottone 2");
        Button btn3 = new Button("Bottone 3");

        vbox.getChildren().addAll(btn1, btn2, btn3);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setTitle("Layout VBox");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 4: Layout con HBox

Utilizzare un layout HBox per posizionare più elementi orizzontalmente.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class LayoutHBox extends Application {
    @Override
    public void start(Stage primaryStage) {
        HBox hbox = new HBox();

        Button btn1 = new Button("Bottone 1");
        Button btn2 = new Button("Bottone 2");
        Button btn3 = new Button("Bottone 3");

        hbox.getChildren().addAll(btn1, btn2, btn3);

        Scene scene = new Scene(hbox, 400, 300);
        primaryStage.setTitle("Layout HBox");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 5: TextField e Label

Aggiungere una TextField e una Label a una finestra JavaFX e visualizzare il testo inserito nella Label quando si preme un bottone.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TextFieldLabel extends Application {
    @Override
    public void start(Stage primaryStage) {
        TextField textField = new TextField();
        Label label = new Label();
        Button btn = new Button("Mostra Testo");

        btn.setOnAction(e -> label.setText(textField.getText()));

        VBox vbox = new VBox(textField, btn, label);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setTitle("TextField e Label");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 6: Utilizzo di una ListView

Creare una ListView e aggiungere degli elementi ad essa.
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ListViewEsempio extends Application {
    @Override
    public void start(Stage primaryStage) {
        ObservableList<String> items = FXCollections.observableArrayList(
            "Elemento 1", "Elemento 2", "Elemento 3");

        ListView<String> listView = new ListView<>(items);

        VBox vbox = new VBox(listView);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setTitle("ListView Esempio");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 7: ComboBox

Creare una ComboBox e gestire l'evento di selezione di un elemento.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ComboBoxEsempio extends Application {
    @Override
    public void start(Stage primaryStage) {
        ComboBox<String> comboBox = new ComboBox<>();
        comboBox.getItems().addAll("Opzione 1", "Opzione 2", "Opzione 3");
        Label label = new Label();

        comboBox.setOnAction(e -> label.setText("Selezionato: " + comboBox.getValue()));

        VBox vbox = new VBox(comboBox, label);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setTitle("ComboBox Esempio");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Esercizio 8: TabPane

Creare una finestra JavaFX con un TabPane contenente due tab.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TabPaneEsempio extends Application {
    @Override
    public void start(Stage primaryStage) {
        TabPane tabPane = new TabPane();

        Tab tab1 = new Tab("Tab 1");
        tab1.setContent(new VBox(new Label("Contenuto del Tab 1")));
        tabPane.getTabs().add(tab1);

        Tab tab2 = new Tab("Tab 2");
        tab2.setContent(new VBox(new Label("Contenuto del Tab 2")));
        tabPane.getTabs().add(tab2);

        VBox vbox = new VBox(tabPane);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setTitle("TabPane Esempio");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}