Hi,
ich bin gerade dabei einen Texteditor in Java mit dem FX framework zu programmieren. Der Einfachheit halber habe ich die Komponente HTMLEditor verwendet. Allerdings habe ich Probleme mit dem Zeilenumbruch. Ich habe schon probiert dem String "\n" mitzugeben, aber es hat nicht funktioniert. Hat jemand eine Idee, bin dabei für alles offen. Würde auch gerne eine andere Komponente als HTMLEditor zu verwenden.
Hier noch mein bisheriger Code:
ich bin gerade dabei einen Texteditor in Java mit dem FX framework zu programmieren. Der Einfachheit halber habe ich die Komponente HTMLEditor verwendet. Allerdings habe ich Probleme mit dem Zeilenumbruch. Ich habe schon probiert dem String "\n" mitzugeben, aber es hat nicht funktioniert. Hat jemand eine Idee, bin dabei für alles offen. Würde auch gerne eine andere Komponente als HTMLEditor zu verwenden.
Hier noch mein bisheriger Code:
Code:
package FX;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import javax.swing.JOptionPane;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.BorderPane;
import javafx.scene.web.HTMLEditor;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class Editor extends Application{
Scene scene;
BorderPane root;
MenuBar menuBar;
Menu file;
MenuItem open;
MenuItem save;
HTMLEditor editor;
String filepath;
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) throws Exception {
// TODO Auto-generated method stub
root = new BorderPane();
//Menu
menuBar = new MenuBar();
file = new Menu("file");
open = new MenuItem("open");
save = new MenuItem("save");
file.getItems().addAll(open, save);
menuBar.getMenus().addAll(file);
editor = new HTMLEditor();
//Set content
root.setTop(menuBar);
root.setCenter(editor);
scene = new Scene(root);
stage.setScene(scene);
stage.setMaximized(true);
stage.show();
listener();
}
private void listener(){
open.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
// TODO Auto-generated method stub
FileChooser fileChooser = new FileChooser();
File file = fileChooser.showOpenDialog(null);
if (file != null) {
String path = file.getAbsolutePath().toString();
path = file.getAbsolutePath().replace("\\", "/");
filepath = file.getAbsolutePath();
try (BufferedReader br = new BufferedReader(new FileReader(filepath))) {
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
editor.setHtmlText(editor.getHtmlText() + "\n" + sCurrentLine.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}else{
filepath = "null";
JOptionPane.showMessageDialog(null, "Keine Datei ausgewählt");
}
}
});
save.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
// TODO Auto-generated method stub
try {
Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(filepath), "utf-8"));
writer.write(editor.getHtmlText());
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}