Java 填充一个';JTable';使用来自';的值;。txt';文件
我是java新手,我有一个这样的文本文件Java 填充一个';JTable';使用来自';的值;。txt';文件,java,swing,file-io,jtable,stringtokenizer,Java,Swing,File Io,Jtable,Stringtokenizer,我是java新手,我有一个这样的文本文件 0784879541|P. K.|Tharindu|745874654v|Colombo| 0714786542|H. R.|Kamal|654124784v|Colombo| 0114784544|H. P.|Gamage|6847654127v|Kandy| 我想用这个文本文件中的数据填充我的“jTable”。下面是到目前为止我的代码,它不起作用。当我执行程序时,表上没有显示任何内容 private void formWindowOpened(ja
0784879541|P. K.|Tharindu|745874654v|Colombo|
0714786542|H. R.|Kamal|654124784v|Colombo|
0114784544|H. P.|Gamage|6847654127v|Kandy|
我想用这个文本文件中的数据填充我的“jTable”。下面是到目前为止我的代码,它不起作用。当我执行程序时,表上没有显示任何内容
private void formWindowOpened(java.awt.event.WindowEvent evt) {
String line = null;
DefaultTableModel dtm = (DefaultTableModel) PhoneBookTable.getModel();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
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();
dtm.addRow(new Object[]{columns, data});//add here
} catch (Exception e) {
e.printStackTrace();
}
}
有人能帮我吗?您需要将您的设置更改为类似的内容。您需要重置向量
data=new vector()每次读取新行时,代码>否则它包含第一行+第二行+依此类推。您还可以调用dtm.setRowCount(0)代码>以避免初始行为空。您只需添加行,注释[cell contain lot of columns]的问题就在于此
dtm.addRow(新对象[]{columns,data})
usedtm.addRow(数据)代码>,问题将得到解决
代码
将每一行(逐行)分别添加到XxxTableModel中会更加安全。还是有同样的问题。没有显示任何内容。请稍候,有一个problem@TharinduKuruppucheak更新了一个。但您必须在读取文件后构造jtable,因为在读取itI之前,您不知道列标题,而itI只是从矢量数据更新的;向量列代码>到矢量数据=新矢量();向量列=新向量()代码>那么您的问题解决了吗?数据需要分开并显示在整个表中。但我得到的结果是,它在一个单元格中显示了整行日期。请查看我的更新答案。@FastSnail真棒,这很有效。谢谢你的帮助。多谢各位。
private void formWindowOpened(java.awt.event.WindowEvent evt) {
String line = null;
DefaultTableModel dtm = (DefaultTableModel) PhoneBookTable.getModel();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
while ((line = br.readLine()) != null) {
data = new Vector();// this is important
StringTokenizer st1 = new StringTokenizer(line, "|");
while (st1.hasMoreTokens()) {
String nextToken = st1.nextToken();
data.add(nextToken);
System.out.println(nextToken);
}
System.out.println(data);
dtm.addRow(data);//add here
System.out.println(".................................");
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}