En entrant des caractères et en appuyant sur le bouton, les caractères saisis sont écrits dans le fichier. Utilisez TextField.
Créez un projet dans Eclipse.
écrire ・ ・ ・ ・ ・ ・ (1) ├ test.txt ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (2) └ src ・ ・ ・ ・ ・ ・ ・ ・ (3) └ pkg ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (4) ├ FileWrite.java ・ ・ ・ ・ ・ ・ ・ (5) ├ Main.java ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (6) ├ MainController.java ・ ・ ・ ・ (7) └ écran.fxml ・ ・ ・ ・ ・ ・ ・ ・ (8)
(1) Projet à créer (2) Fichier texte à écrire (créé à l'exécution si le fichier n'existe pas, et ajouté s'il existe) (3) Répertoire du fichier source créé arbitrairement lors de la création d'un projet (4) Package à créer (5) Fichier source (décrit dans le chapitre suivant), écriture de fichier (6) Fichier source (décrit dans le chapitre suivant), démarrage de l'écran (7) Fichier source (décrit dans le chapitre suivant), contrôleur d'écran (8) Fichier source (décrit dans le chapitre suivant, créé par SceneBuilder)
3.1. FileWrite.java
FileWrite.java
package pkg;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class FileWrite {
	public void write(String text) throws IOException {
		try {
//Décrivez l'un ou l'autre, commentez-en un-----------------------------------
			//FileWriter file = new FileWriter("test.txt");//Écraser
			FileWriter file = new FileWriter("test.txt", true);//Postscript
//---------------------------------------------------------------------
			//Créer un objet de la classe PrintWriter
			PrintWriter pw = new PrintWriter(new BufferedWriter(file));
			//Écrire dans un fichier
			pw.println(text);
			pw.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}
3.2. Main.java
Main.java
package pkg;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
	@Override
	public void start(Stage primaryStage) {
		try {
			//Chargement des graphiques de scène depuis FXML
			FXMLLoader loader = new FXMLLoader(getClass().getResource("screen.fxml"));
			Parent root = loader.load();
			//Création d'une scène avec le nœud racine du jeu de graphes de scènes
			Scene scene = new Scene(root, 600, 400);
			//Mise en scène de la scène
			primaryStage.setScene(scene);
			primaryStage.setTitle("no title");
			primaryStage.show();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		launch(args);
	}
}
3.3. MainController.java
MainController.java
package pkg;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Modality;
public class MainController {
	@FXML
	private ResourceBundle resources;
	@FXML
	private URL location;
	@FXML
	private TextField textField;
	@FXML
	private Button writeButton;
	@FXML
	void OnclickedWriteButton(ActionEvent event) throws IOException {
		String text = textField.getText();
		if (!text.isEmpty()) {
			FileWrite a = new FileWrite();
			a.write(text);
			textField.setText("");
		} else {
			Alert alert = new Alert(AlertType.INFORMATION); //Définir un type d'alerte appelé information
			alert.initModality(Modality.WINDOW_MODAL); //Vous ne pouvez pas faire fonctionner d'autres fenêtres sauf certaines jusqu'à ce que l'opération soit terminée.
			alert.setTitle("avertissement"); //Définir le titre
			alert.setContentText("Aucun texte n'a été saisi."); //Définir le contenu
			alert.showAndWait(); //Afficher une alerte et attendre l'exécution jusqu'à sa fermeture
		}
	}
	@FXML
	void initialize() {
		assert textField != null : "fx:id=\"textField\" was not injected: check your FXML file 'screen.fxml'.";
		assert writeButton != null : "fx:id=\"writeButton\" was not injected: check your FXML file 'screen.fxml'.";
		textField.setText("");
	}
}
3.4. screen.fxml
screen.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="pkg.MainController">
   <children>
      <TextField fx:id="textField" layoutX="155.0" layoutY="187.0" />
      <Button fx:id="writeButton" layoutX="364.0" layoutY="187.0" mnemonicParsing="false" onAction="#OnclickedWriteButton" prefHeight="27.0" prefWidth="80.0" text="l'écriture" />
   </children>
</Pane>