Schreiben von JavaFX8-Dateien (TextArea)

1. Technische Daten

Durch Eingabe von Zeichen und Drücken der Taste werden die eingegebenen Zeichen in die Datei geschrieben. Verwenden Sie TextArea.

2. Dateistruktur

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. Quelldatei

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>

Recommended Posts

Schreiben von JavaFX8-Dateien (TextArea)
JavaFX8-Datei schreiben (TextField)
[Persönliches Memo] Schreiben einer Datei mit BufferedWriter
Struktur der JavaFX-Anwendungsdatei (FXML, CSS, Eigenschaften)