import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;class Model extends AbstractTableModel{
String[] columnNames= {"itemset","support"};
Object data[][];
struct aStruct = new struct();
public Model(Vector vector) // 创建表模型 vector是数据源
{
for(int i=0;i<vector.size();i++)
{
aStruct = (struct)vector.elementAt(i);
data[i][0] = aStruct.getItem();
}
for(int i=0;i<vector.size();i++)
{
aStruct = (struct)vector.elementAt(i);
data[i][1] = aStruct.getSup();
} }
public String getColumnName(int index)
{
return columnNames[index];
}
public int getRowCount()
{
return data.length;
}
public int getColumnCount()
{
return data[0].length;
}
public Object getValueAt(int row,int col)
{
return data[row][col];
}
}public class Frame2 extends JFrame {
public Frame2(Vector vec)
{
super("生成频繁项过程");
Model model = new Model(vec);
JTable table = new JTable(model);
JButton NextButton = new JButton("next");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);
this.getContentPane().add(NextButton,BorderLayout.SOUTH);
this.pack();
this.setSize(400,400);
this.setVisible(true);
}
public Frame2() // 用来测试
{
super();
Vector test = new Vector();
struct a = new struct();
a.setItem("a");
a.setSup(1);
test.add(a);
new Frame2(test);
}
public static void main(String args[]){
new Frame2();
}
}
错误:
Exception in thread "main" java.lang.NullPointerException
at Model.<init>(Frame2.java:20)
at Frame2.<init>(Frame2.java:52)
at Frame2.<init>(Frame2.java:70)
at Frame2.main(Frame2.java:73)
Press any key to continue...
请问哪里有错怎么改
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;class Model extends AbstractTableModel{
String[] columnNames= {"itemset","support"};
Object data[][];
struct aStruct = new struct();
public Model(Vector vector) // 创建表模型 vector是数据源
{
for(int i=0;i<vector.size();i++)
{
aStruct = (struct)vector.elementAt(i);
data[i][0] = aStruct.getItem();
}
for(int i=0;i<vector.size();i++)
{
aStruct = (struct)vector.elementAt(i);
data[i][1] = aStruct.getSup();
} }
public String getColumnName(int index)
{
return columnNames[index];
}
public int getRowCount()
{
return data.length;
}
public int getColumnCount()
{
return data[0].length;
}
public Object getValueAt(int row,int col)
{
return data[row][col];
}
}public class Frame2 extends JFrame {
public Frame2(Vector vec)
{
super("生成频繁项过程");
Model model = new Model(vec);
JTable table = new JTable(model);
JButton NextButton = new JButton("next");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);
this.getContentPane().add(NextButton,BorderLayout.SOUTH);
this.pack();
this.setSize(400,400);
this.setVisible(true);
}
public Frame2() // 用来测试
{
super();
Vector test = new Vector();
struct a = new struct();
a.setItem("a");
a.setSup(1);
test.add(a);
new Frame2(test);
}
public static void main(String args[]){
new Frame2();
}
}
错误:
Exception in thread "main" java.lang.NullPointerException
at Model.<init>(Frame2.java:20)
at Frame2.<init>(Frame2.java:52)
at Frame2.<init>(Frame2.java:70)
at Frame2.main(Frame2.java:73)
Press any key to continue...
请问哪里有错怎么改
NullPointException应该是初始化出问题
public class struct{
public int support;
public String item;
public struct()
{
support= 0;
item = "";
}
public int getSup()
{
return support;
}
public String getItem()
{
return item;
}
public void setSup(int support)
{
this.support=support;
}
public void setItem(String item)
{
this.item=item;
}
public void increaseSup()
{
support++;
}
}能说的清楚点吗?20行初始化有问题?
{null,null},
{null,null},
.
.
.
{null,null},
};
共十个可以显示,但有9行是空的
有没有办法可以实现显示的时候 有几行有效的数据就显示几行?
2. data[i][1] = aStruct.getSup(); //类型不对吧其它没仔细看,你可以调试一下