Java FX est une bibliothèque Java permettant la création d’interface graphique. Cette bibliothèque ne fait pas partie de base dans Java, il est donc nécessaire d’installer Java FX.
Project>properties
Java Build Path
Librairies
est bien sélectionné
Add Library
User Library
User Libraries
New
sur la droite
Add External Jars...
.jar
Apply and Close
Finish
, puis de nouveau via
Apply and Close
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MyFirstAppJavaFx extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
/* donner un nom à la fenêtre */
.setTitle("ma Fenêtre");
primaryStage
/* Création d'un bouton */
Button b = new Button("mon bouton");
/* création d'une fenêtre */
= new StackPane();
StackPane root
/* ajouter le bouton à la scene */
.getChildren().add(b);
root
/* création d'une scene et de son association avec */
/* la fenêtre + taille */
= new Scene(root, 500, 300);
Scene scene
/* Ajouter la scene */
.setScene(scene);
primaryStage
/* rendre la fenêtre visible */
.show();
primaryStage
}
public static void main (String[] args) {
launch (args);
}
}
Build Path > Configure Build Path
Apply and Close
Si vous avez cette erreur :
Error: JavaFX runtime components are missing, and are required to run this application
Il faut :
Run -> Run Configurations... -> Java Application
Ajouter le chemin de java fx que vous avez téléchargé précédement :
Attention
~
. Il faut
indiquer le chemin absolue /home/cytech
--module-path /votreChemin/openjfx-23.0.2_linux-x64_bin-sdk/javafx-sdk-23.0.2/lib/lib --add-modules javafx.controls,javafx.fxml
L’utilisateur pourra ajouter un groupe/musicien à la liste. Une fois
le bouton ajouter
validé par l’utilisateur, une alerte
apparaît pour indiquer que le groupe/musicien a bien été ajouté.
ListView<String> maListe = new ListView<String>();
.setOrientation(Orientation.VERTICAL);
maListe.setPrefSize(200, 100);
maListe.getItems().add("COUCOU"); maListe
TextField textField = new TextField();
String contenu = textField.getText();
Button b = new Button("valider");
= new Alert(AlertType.INFORMATION);
Alert alert .setTitle("Titre de mon Alerte");
alert.setHeaderText("titre1:");
alert.setContentText("description-contenu");
alert.showAndWait(); alert
.setOnAction(new EventHandler<ActionEvent>() {
bpublic void handle(ActionEvent event) {
System.out.println("J'ai cliqué sur le bouton");
}
});
= new FlowPane();
FlowPane root .setPadding(new Insets(10));
root.setVgap(5);
root.setHgap(5); root
.getChildren().add(textField);
root.getChildren().add(b); root
/* création d'une scene et de son association avec */
/* la fenêtre + taille */
= new Scene(root, 500, 300);
Scene scene
/* Ajouter la scene */
.setScene(scene);
primaryStage
/* rendre la fenêtre visible */
.show(); primaryStage
Pour les utilisateurs de ubuntu
.deb
software install
scene builder
précédement installéMain
, comme suit :import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class MainTEST extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
try {
// Load root layout from fxml file.
= new FXMLLoader(MainTEST.class.getResource("template.fxml"));
FXMLLoader loader = (VBox) loader.load();
VBox rootLayout
// Show the scene containing the root layout.
= new Scene(rootLayout);
Scene scene .setScene(scene);
primaryStage.show();
primaryStage} catch (IOException e) {
.printStackTrace();
e}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
launch(args);
}
}
scene builder
dans le même dossier (package) que votre Main
package explorer
sur votre eclipse (afin d’actualiser le
template.fxml
)