我有一個帶有中文字符的Jtable,而我試圖將數據提取到數組列表中,它顯示爲???????,在eclipse控制檯中顯示它正常,但在html文件中顯示它棘手。如何將JTable數據讀入具有特殊字符(如中文)的ArrayList?
package test.java;
import javax.swing.*;
public class TableExample
{
JFrame f;
JTable jt ;
public JTable m1()
{
f=new JFrame();
String data[][]={ {"100","你叫什麼名字? ","1234"},
{"111","プードル","4567"},
{"222","유모차","343124"}};
String column[]={"ID","NAME","SALARY"};
jt=new JTable(data,column);
jt.setBounds(30,40,200,300);
JScrollPane sp=new JScrollPane(jt);
f.add(sp);
f.setSize(300,400);
f.setVisible(true);
return jt;
}
}
第二程序讀取數據和寫入數據到一個HTML文件中,我看不到我的特殊字符
package test.java;
import java.util.ArrayList;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JTable;
public class TableClass {
public static void main(String[] args)
{
ArrayList<String> numdata = new ArrayList<String>();
TableExample mainTable = new TableExample();
JTable table = mainTable.m1();
for (int count = 0; count < table.getRowCount(); count++)
{
numdata.add(table.getValueAt(count, 1).toString());
}
FileWriter writer = null;
try
{
writer = new FileWriter("D:/Testing.html");
} catch (IOException e)
{
e.printStackTrace();
}
for(String str: numdata)
{
try
{
writer.write(str);
} catch (IOException e)
{
e.printStackTrace();
}
}
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
這很可能是用於呈現文本的字體的一個問題 – MadProgrammer
在執行代碼時,我得到一個例外,即「ArrayList numdata」不能轉換爲「CharSequence」。這是你的實際代碼嗎? – cello
將'System.out.println'行更改爲'for(Object o:numdata){System.out.println(「TableClass.main()」+ o); }'爲我打印正確的字符。所以它可能是控制檯中使用的字體或控制檯的字符編碼問題。 – cello