Hallo,
ich habe eine Frage zur Anzeige von UTF-8-Zeichen.
Ich baue ein JFrame mit einer JTable auf und möchte in dieser JTable das Zeichen und den Code Point anzeigen:
JFrame frame = new JFrame();
TableModel myModel = new MyTableModel();
frame.add(new JScrollPane(new JTable(myModel)));
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}```
Im TableModel gibt es eine Liste , die alle Zeichen von 0 bis 300hex anzeigen soll.
Gekürzt sieht das so aus:
```public class MyTableModel implements TableModel {
// innere Klasse "Zeichen"
private class Zeichen {
private final String GLYPH;
private final String CP;
private Zeichen(String glyph, String cp) {
this.GLYPH = glyph;
this.CP = cp;
}
}
private final List<TableModelListener> LISTENERS = new LinkedList<>();
private final String[] HEADERS = new String[]{"Zeichen", "Code Point"};
private final List<Zeichen> DATA = new ArrayList<>();
// Initialisierer
{
for (int i = 0; i < 0x300; i++) {
String cp = "\\U" + i;
char tempGlyph = (char) i;
String glyph = Character.toString(tempGlyph);
DATA.add(new Zeichen(glyph, cp));
}
}
// ... usw.
}```
Meine Frage ist nun: warum werden einige Zeichen "normal" angezeigt (z. B. U464), andere nur als "Kästchen"?