Hi,
ich habe folgendes Problem ...
Eien Textdatei, Kodierung: UTF-8 soll eingelesen und angezeigt werden.
Eigentlich eine Kindergartenaufgabe wäre da nicht ein kleines Problem.
Aus irgendeinen Grund zeigt er unter Windows den BOB (diesen kleinen Punkt davor) an.
Deaktiviert man das System LookAndFeel geht es:
Warum ist das so, was hat LAF mit dem einlesen der Datei zu tun, oder ist es immer da nur Standard ausgeblendet?
Kann man das elegant lösen wenn man auf das SystemLookAndFeel nicht verzichten will?
Code:
ich habe folgendes Problem ...
Eien Textdatei, Kodierung: UTF-8 soll eingelesen und angezeigt werden.
Eigentlich eine Kindergartenaufgabe wäre da nicht ein kleines Problem.
Aus irgendeinen Grund zeigt er unter Windows den BOB (diesen kleinen Punkt davor) an.
Deaktiviert man das System LookAndFeel geht es:
Warum ist das so, was hat LAF mit dem einlesen der Datei zu tun, oder ist es immer da nur Standard ausgeblendet?
Kann man das elegant lösen wenn man auf das SystemLookAndFeel nicht verzichten will?
Code:
Java:
import java.awt.Dimension;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
public class DragonFrame {
public static void main(String[] args) {
DragonFrame.setLookAndFeel();
JFrame f = new JFrame("Ein langer Text");
JTextArea txt = new JTextArea(readFile("example.txt"));
txt.setLineWrap(true);
f.add(new JScrollPane(txt));
f.setPreferredSize(new Dimension(500, 400));
f.pack();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
/**
* Einlesen einer Datei ueber einen BufferedReader mit StringBuffer. Musste
* die Kodierung der Text-Datei auf UTF-8 ohne BOM aendern. <br>
* JAVA BUG ID 4508058: UTF-8 encoding does not recognize initial BOM
*
* @param path
* @return
*/
public static String readFile(String path) {
String s = "Datei nicht gefunden";
try {
File file = new File(path);
if (file.exists()) {
BufferedReader in = new BufferedReader(new FileReader(file));
StringBuffer sb = new StringBuffer();
String tmp = in.readLine();
while (tmp != null) {
sb.append(tmp + "\n");
tmp = in.readLine();
}
s = sb.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return s;
}
static public void setLookAndFeel() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
System.out.println("UIManager: Failed to set LookAndFeel.");
e.printStackTrace();
}
}
}
Zuletzt bearbeitet: