2010-12-22 50 views
3

如何将UTF-8字符串添加到JTable中? ASCII范围中的字符串看起来没问题,但带有重音符的字符不能正确显示。JTable中的UTF-8

+0

UTF-8字符串在应用程序的其余部分中是否正确显示? – 2010-12-22 21:49:14

回答

1

我在读取字符串时没有将读写器设置为UTF-8编码。 改变

BufferedReader br = new BufferedReader(new InputStreamReader(di)); 

BufferedReader br = new BufferedReader(new InputStreamReader(di, "UTF-8")); 

后的文本显示正确。

1

alt text

以上是在JTable中的行(屏幕截图)与正常重音字符故意插入它。 JTable是通常的,没有任何特殊的修改来容纳或接受特殊字符。

强调字符中定义:http://tlt.its.psu.edu/suggestions/international/accents/codealt.html

的源代码:

JTable table = new javax.swing.JTable(); 
DefaultTableModel model = null; 

public void initTableModel() { 
    model = new DefaultTableModel(); 
    table.setModel(model); 
    model.addColumn("col1"); 
    model.addColumn("col2"); 
    ListSelectionModel selectionModel = table.getSelectionModel(); 
    selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    ListSelectionModel rowSM = table.getSelectionModel(); 
    table.removeAll(); 
    table.getColumnModel().getColumn((model.getColumnCount() - 1)).setPreferredWidth(200); 
} 

public void initTableData() { 
    int numrows = model.getRowCount(); 
    for (int i = numrows - 1; i >= 0; i--) { 
     model.removeRow(i); 
    } 

    String[] row = new String[3]; 
    if (pass != null) { 
      row[0] = "Lü Dongbin呂洞賓Lán Cǎihé"; 
      row[1] = "《全唐詩》ó, ò, ñ"; 
      model.addRow(row); 
    } 
    validate(); 
    repaint(); 
} 

整个Java源代码:http://ahb.me/1exq(更准确和测试)

这是代码你想要的?