Hallo Leute..
Ich habe ein Programm geschrieben in dem ich die Unicodes von Hiraganas, Katakanas und Kanjis umwandeln und in einem TextArea darstellen kann. Hiraganas und Katakanas funktionieren perfekt.. aber Kanjis bringt er nur das "Viereck".. ich habe mal ein wenig gegooglet und bin darüber gestolpert..
Quelle: java - How to display japanese characters in JTextArea - Stack Overflow
Es hat einen Tag lang funktioniert und dann war wieder Sense..
ich habe daraufhin mal einen alten Testcode modifiziert so das das Problem mal getestet werden konnte. Auch dort war keine Darstellung mehr möglich... diesmal aber von Anfang an..
Wo könnte mein Fehler liegen??
BeispielCode:
Ich habe ein Programm geschrieben in dem ich die Unicodes von Hiraganas, Katakanas und Kanjis umwandeln und in einem TextArea darstellen kann. Hiraganas und Katakanas funktionieren perfekt.. aber Kanjis bringt er nur das "Viereck".. ich habe mal ein wenig gegooglet und bin darüber gestolpert..
Java:
Object fontDefinition = new UIDefaults.ProxyLazyValue("javax.swing.plaf.FontUIResource", null, new Object[] { "dialog", new Integer(Font.PLAIN), new Integer(12) });
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof javax.swing.plaf.FontUIResource) {
UIManager.put(key, fontDefinition);
}
}
Es hat einen Tag lang funktioniert und dann war wieder Sense..
ich habe daraufhin mal einen alten Testcode modifiziert so das das Problem mal getestet werden konnte. Auch dort war keine Darstellung mehr möglich... diesmal aber von Anfang an..
Wo könnte mein Fehler liegen??
BeispielCode:
Java:
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import java.nio.charset.*;
public class MainFrame {
JFrame frame;
JLabel eins, zwei;
static JTextArea ta1;
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
Font f = new Font("SansSerif",Font.BOLD, 35);
JFrame frame = new JFrame("Unicode");
JLabel zwei;
Object fontDefinition = new UIDefaults.ProxyLazyValue("javax.swing.plaf.FontUIResource", null, new Object[] { "dialog", new Integer(Font.PLAIN), new Integer(12) });
java.util.Enumeration keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof javax.swing.plaf.FontUIResource) {
UIManager.put(key, fontDefinition);
}
}
frame.setLayout(new GridLayout(2, 1));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(200, 200);
ta1 = new JTextArea();
ta1.setText("\u2F71"); // Kanji
ta1.setSize(80, 30);
//ta1.setFont(f);
ta1.setBorder(BorderFactory.createEtchedBorder());
frame.add(ta1);
String temp = "\u3042"; // Hiragana
zwei = new JLabel();
zwei.setSize(80, 30);
zwei.setFont(f);
zwei.setOpaque(true);
zwei.setBorder(BorderFactory.createEtchedBorder());
zwei.setBackground(Color.WHITE);
zwei.setText(temp);
frame.add(zwei);
}
}