Durch Eingabe von Zeichen und Drücken der Taste werden die eingegebenen Zeichen in die Datei geschrieben. Verwenden Sie TextArea.
Erstellen Sie ein Projekt in Eclipse.
schreibe ・ ・ ・ ・ ・ ・ (1) ├ test.txt 2 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 2 2 (2) 3 src ・ ・ ・ ・ ・ ・ ・ 3 (3) 4 ・ k k 4 4 4 4 4 4 4 4 4 4 (4) ├ FileWrite.java 5 ・ ・ ・ ・ ・ 5 (5) ├ Main.java 6) ・ ・ ・ ・ ・ ・ ・ ・ 6 (6) ├ MainController.java 7 ・ ・ 7 (7) └ screen.fxml 8 ・ ・ ・ ・ ・ ・ 8 (8)
(1) Zu erstellendes Projekt (2) Zu schreibende Textdatei (wird zur Laufzeit erstellt, wenn die Datei nicht vorhanden ist, und hinzugefügt, wenn sie vorhanden ist). (3) Quelldateiverzeichnis, das beim Erstellen eines Projekts willkürlich erstellt wurde (4) Zu erstellendes Paket (5) Quelldatei (im nächsten Kapitel beschrieben), Schreiben von Dateien (6) Quelldatei (im nächsten Kapitel beschrieben), Start des Bildschirms (7) Quelldatei (im nächsten Kapitel beschrieben), Bildschirmsteuerung (8) Quelldatei (beschrieben im nächsten Kapitel, erstellt von 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 {
//Beschreibe entweder, kommentiere einen aus-----------------------------------
//FileWriter file = new FileWriter("test.txt");//Überschreiben
FileWriter file = new FileWriter("test.txt", true);//Nachtrag
//---------------------------------------------------------------------
//Erstellen Sie ein Objekt der PrintWriter-Klasse
PrintWriter pw = new PrintWriter(new BufferedWriter(file));
//In Datei schreiben
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 {
//Laden von Szenendiagrammen aus FXML
FXMLLoader loader = new FXMLLoader(getClass().getResource("screen.fxml"));
Parent root = loader.load();
//Erstellen einer Szene mit dem Wurzelknoten des Szenendiagrammsatzes
Scene scene = new Scene(root, 600, 400);
//Die Szene auf die Bühne bringen
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.TextArea;
import javafx.stage.Modality;
public class MainController {
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private TextArea textArea;
@FXML
private Button writeButton;
@FXML
void OnclickedWriteButton(ActionEvent event) throws IOException {
String text = textArea.getText();
if (!text.isEmpty()) {
FileWrite a = new FileWrite();
a.write(text);
textArea.setText("");
} else {
Alert alert = new Alert(AlertType.INFORMATION); //Legen Sie einen Alarmtyp mit dem Namen information fest
alert.initModality(Modality.WINDOW_MODAL); //Sie können bis auf einige andere Fenster erst bedienen, wenn der Vorgang abgeschlossen ist.
alert.setTitle("Warnung"); //Titel einstellen
alert.setContentText("Es wurde kein Text eingegeben."); //Stellen Sie den Inhalt ein
alert.showAndWait(); //Zeigen Sie eine Warnung an und warten Sie auf die Ausführung, bis sie geschlossen ist
}
}
@FXML
void initialize() {
assert textArea != null : "fx:id=\"textArea\" was not injected: check your FXML file 'screen.fxml'.";
assert writeButton != null : "fx:id=\"writeButton\" was not injected: check your FXML file 'screen.fxml'.";
textArea.setText("");
}
}
3.4. screen.fxml
screen.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TextArea?>
<?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>
<Button fx:id="writeButton" layoutX="260.0" layoutY="340.0" mnemonicParsing="false" onAction="#OnclickedWriteButton" prefHeight="27.0" prefWidth="80.0" text="Schreiben" />
<TextArea fx:id="textArea" layoutX="53.0" layoutY="81.0" prefHeight="239.0" prefWidth="494.0" />
</children>
</Pane>