📢 Nuovo Corso Bootstrap Completo disponibile!

Esercizi su JavaFX

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);
}
}