使用“.txt”文件中的值填充 'JTable'
populate a 'JTable' with values from a '.txt' file
我是 java 的新手,我有一个这样的文本文件
0784879541|P. K.|Tharindu|745874654v|Colombo|
0714786542|H. R.|Kamal|654124784v|Colombo|
0114784544|H. P.|Gamage|6847654127v|Kandy|
我想用这个文本文件中的数据填充我的 'jTable'。以下是我目前无法使用的代码。当我执行程序时,table.
上没有显示任何内容
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();
}
}
有人可以帮我吗?
你需要将你的更改为 this.you 每次读取新行时需要重置向量 data = new Vector();
否则它包含第一行 + 第二行 + 所以 on.and您可以调用 dtm.setRowCount(0);
以避免初始行为空。你只需要添加行你的评论[单元格包含很多列]的问题是因为
dtm.addRow(new Object[]{columns, data})
改用 dtm.addRow(data);
问题将得到解决
代码
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();
}
}
我是 java 的新手,我有一个这样的文本文件
0784879541|P. K.|Tharindu|745874654v|Colombo|
0714786542|H. R.|Kamal|654124784v|Colombo|
0114784544|H. P.|Gamage|6847654127v|Kandy|
我想用这个文本文件中的数据填充我的 'jTable'。以下是我目前无法使用的代码。当我执行程序时,table.
上没有显示任何内容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();
}
}
有人可以帮我吗?
你需要将你的更改为 this.you 每次读取新行时需要重置向量 data = new Vector();
否则它包含第一行 + 第二行 + 所以 on.and您可以调用 dtm.setRowCount(0);
以避免初始行为空。你只需要添加行你的评论[单元格包含很多列]的问题是因为
dtm.addRow(new Object[]{columns, data})
改用 dtm.addRow(data);
问题将得到解决
代码
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();
}
}