【发布时间】:2017-05-24 17:27:47
【问题描述】:
try{
DefaultTableModel tm = (DefaultTableModel) jTable1.getModel();
FileInputStream FI = new FileInputStream("C://Users//Dell-Pc//Documents//NetBeansProjects//MyBookShop//src//Layouts//book_store.txt");
DataInputStream DI = new DataInputStream(FI);
BufferedReader br= new BufferedReader(new InputStreamReader(DI));
String line="";
while((line=br.readLine()) != null){
Map m1 = new HashMap();
String[] data1=line.split(",");
m1.put("ISBN", data1[0]);
m1.put("TITLE", data1[1]);
m1.put("AUTHOR", data1[2]);
m1.put("PRICE", data1[3]);
m1.put("NUMBER", data1[4]);
//System.out.println(data1[1]);
//System.out.println("\t"+m1);
Vector v1 = new Vector();
v1.add(m1.get("ISBN"));
v1.add(m1.get("TITLE"));
v1.add(m1.get("AUTHOR"));
v1.add(m1.get("PRICE"));
v1.add(m1.get("NUMBER"));
tm.addRow(v1);
//v.clear();
//tm.setDataVector(data, cols);
}
}catch(Exception e){
// JOptionPane.showMessageDialog(this, e);
Logger.getLogger(HomePage.class.getName()).log(Level.SEVERE, null, e); }
【问题讨论】:
-
我们不是读心术的人。我们不知道是什么声明导致了这个问题。我们不知道您文件中的数据是什么样的。发布一个正确的minimal reproducible example 来证明问题。如果您确实需要从文件中读取数据,请使用
StringReader获取数据。 -
除了@camickr 建议的 MCVE。 1) 见What is a stack trace, and how can I use it to debug my application errors? 2) 总是复制/粘贴错误和异常输出! 3) 请对代码和代码 sn-ps、HTML/XML 等结构化文档或输入/输出(如堆栈跟踪)使用代码格式。为此,请选择文本并单击消息发布/编辑表单顶部的
{}按钮。 4)硬编码一些数据来替换book_store.txt。 -
如果您遵循 Java 命名约定,您的代码会更容易阅读。并且不要使用
java.util.Vector。它已经过时了大约十九年。 -
我在 50 分钟前花时间格式化您的代码,您为什么撤消更改?我不会第二次修复代码!不要使用浏览器的后退按钮。添加新信息时,请单击您问题的
"edit"链接。仍然不知道您为什么要编辑问题,因为您没有添加任何新信息。 -
@LewBloch,
And don't use java.util.Vector.- 这是 DefaultTableModel API 使用的。在创建使用不同数据存储的自定义 TableModel 之前,OP 需要了解 JTable 和 TableModel 如何工作的基础知识。
标签: java swing indexoutofboundsexception