数据的列数不一致:
可能recordField的列数比headerField少。确认你的数据是否正确
可能recordField的列数比headerField少。确认你的数据是否正确
解决方案 »
- getDeclaredMethods返回父类Method?
- 怎么会有这样的错误提示?java.lang.NullPointerException?
- DOM中节点设置多个属性的问题
- 不知道泛型怎么用。给我一个泛型的例子吧
- JAVA 连接数据库问题 请高手指点
- static int x1 = prt("x1");是什么意思?
- 怎样让Eclipse的Navigator框口的工程下面只显示.java文件,而不要显示其他的.class文件?
- 关于instanceof 的问题 (高分哦)。
- ~~一个整数的格式转换问题~~
- 谁考过scjd,难不难?
- 请高手相助!(急)
- 这个简单的applet中单击按钮事件为什么不能触发呀!!!!!!!!
analizeText();
} synchronized private void analizeText(){
file=new File(fileName);
try{
fileIn=new FileInputStream(file);
bufferIn=new BufferedReader(new InputStreamReader(fileIn));
readLine=bufferIn.readLine();//--读取文件中的每一行
StringTokenizer st=new StringTokenizer(readLine,",",false);根据逗号进行拆分
headerField=new Vector();
while(st.hasMoreElements()){
headerField.addElement(st.nextElement());放到vector中,因为文件中第一行是表头
}
recordField=new Vector();
while((readLine=bufferIn.readLine())!=null){
st=new StringTokenizer(readLine,",",false);读出每个记录
tempVector=new Vector();
while(st.hasMoreTokens()){
tempVector.addElement(st.nextToken());,将每个记录放到一个vector中
}
System.out.println("temp:"+tempVector.size());每次大小都是一样的
recordField.addElement(tempVector);
}
bufferIn.close();
fileIn.close();
System.out.println("record:"+recordField.size());//--用于校验出错时是否下标发生变化,结果发现,没有变化
System.out.println("header:"+headerField.size());
mainGUI.setTable(recordField,headerField);--调用setTable方法
}
catch(IOException e){e.printStackTrace();
}
}以上代码是分析文件然后放到两个vector中,下面是mainGUI类的setTable方法:class MainGUI extends JFrame{
public void setTable(Vector recordField,Vector headerField){
DefaultTableModel defaultTableModel=new DefaultTableModel(recordField,headerField);
jTable.setModel(defaultTableModel);//---就是这行出错
}
问题2. 仔细看看你的文本文件的最后一行,是否是一个空行,即除了回车换行外,没有其他的字符,此时 当读到最后一行时,readLine() 读到的是 "" 而不是 null
日期,产品名称,规格/用途,地 区,价格类型,最高价,最低价,比上周
6月27日,PVC ,悬浮 ,东南亚 ,到岸价 ,610?,590?,17.5?
6月27日,PVC ,悬浮 ,远东 ,到岸价 ,600?,590?,2.5?
6月27日,PVC ,悬浮 ,美国海湾 ,离岸价 ,530?,520?,5?
6月27日,PVC ,悬浮 ,西北欧 ,FD ,686?,639?,-10?
6月27日,PVC ,悬浮 ,西北欧 ,离岸价 ,550?,530?,10?补充,setTable方法修改如下: public void setTable(Vector recordField,Vector headerField){ DefaultTableModel tableModel=(DefaultTableModel)jTable.getModel();
tableModel.setColumnCount(0);
tableModel.setRowCount(0);
Iterator iterator=headerField.iterator();
while(iterator.hasNext()){
tableModel.addColumn("amjn");//--即使每次加这个常量,每个循环8次,他有时候也报错
iterator.next();
}
这里没有增加内容,只是增加列了
第一次点击肯定是不会错的,关键就是下面的几次点击
}