您需要将其更改为以下内容。
data = newVector();每次读取新行时,都需要重置矢量,否则它包含第一行+第二行+以此类推。您还可以调用
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(); } }


