Saj*_*jad 1 java file-io swing file jtable
我想从.txt文件中读取数据并将它们发送到我的表中.我该怎么办?我的代码:
public class InsertFileDataToJTable extends AbstractTableModel {
Vector data;
Vector columns;
public InsertFileDataToJTable() {
String line;
data = new Vector();
columns = new Vector();
try {
FileInputStream fis = new FileInputStream("student.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
StringTokenizer st1 = new StringTokenizer(br.readLine(), " ");
while (st1.hasMoreTokens())
columns.addElement(st1.nextToken());
while ((line = br.readLine()) != null) {
StringTokenizer st2 = new StringTokenizer(line, " ");
while (st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public int getRowCount() {
return data.size() / getColumnCount();
}
public int getColumnCount() {
return columns.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
return (String) data.elementAt((rowIndex * getColumnCount())
+ columnIndex);
}
public static void main(String s[]) {
InsertFileDataToJTable model = new InsertFileDataToJTable();
JTable table = new JTable();
table.setModel(model);
JScrollPane scrollpane = new JScrollPane(table);
JPanel panel = new JPanel();
panel.add(scrollpane);
JFrame frame = new JFrame();
frame.add(panel, "Center");
frame.pack();
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
请帮忙!谢谢.
您在代码中遇到了什么问题?
我运行你的代码,它工作得很好,除了列名将是默认的A,B,...因为你没有从模型中检索列名的方法.你已经实现了方法getValueAt(),并且完美地工作.只需在上面的类中为列名添加新方法:
public String getColumnName(int i){
return (String)columns.get(i);
}
Run Code Online (Sandbox Code Playgroud)
如果您有任何其他问题,请让我们知道.我只运行了2列,所以没有完全测试getValueAt()方法.
| 归档时间: |
|
| 查看次数: |
7711 次 |
| 最近记录: |