这是我第一次创建jtable,我想从另一个类中显示一个int的jtable。所以我调用方法getTable并将其分配给jtable,是不是?
jTable1 = new javax.swing.JTable();
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new int[][] = TableAdapter.getTableC()
));
jScrollPane1.setViewportView(jTable1);
它一直在说arraydimension缺失,然后我调用方法getDimension()并以各种方式插入它
new int[getDimension()][] = TableAdapter.getTableC()
或
new int[getDimension()][new int[getDimension()][] = TableAdapter.getTableC()
非常感谢,我正在使用Netbeans。
我得到了一个动物表,它有两种类型的动物,从中我解释为整数代码,存储在一个新表(tableC)中只是为了让它更容易
package tigers.bunnies;
public class TableAdapter {
static public int tableC[][];//=new int[3][3];
static private int dimension;
public void Table(){
Animal tableT[][];
tableT = table.getTable();
dimension=tableT.length;
//int tableC[][];
tableC = new int[dimension][dimension];
for(int i=0;i<dimension;i++){
for(int j=0;j<dimension;j++){
if(tableT[i][j]==null){
tableC[i][j]=0000;
}
else if(tableT[i][j] instanceof tiger){
tableC[i][j]=0001;
}
else if(tableT[i][j] instanceof tiger){
tableC[i][j]=0002;
}
}
}
}
public static int[][] getTableC() {
return tableC;
}
public static int getDimension() {
return dimension;
}
}
当我使用
时jTable1.setModel(new javax.swing.table.DefaultTableModel(
TableAdapter.getTableC()
));
它有这些错误:
(C:\用户\用户\桌面\ error.png)
答案 0 :(得分:1)
可能你的TableAdapter.getTable()方法返回一个单维数组。你也没有提供表头,但我不认为这是异常的直接原因。你应该这样调用setModel:
Object[] header = {"Column1", "Column2..."};
jTable1.setModel(new javax.swing.table.
DefaultTableModel(TableAdapter.getTableC(), header)
答案 1 :(得分:1)
你的getTableC方法是静态的,但初始化数组的Table方法不是,导致返回未初始化的数组。使Table方法静态或从getTableC,tableC和dimmension中删除static关键字,并使Table方法成为构造函数。
package tigers.bunnies;
public class TableAdapter {
public int tableC[][];//=new int[3][3];
private int dimension;
public TableAdapter(){
Animal tableT[][];
tableT = table.getTable();
dimension=tableT.length;
//int tableC[][];
tableC = new int[dimension][dimension];
for(int i=0;i<dimension;i++){
for(int j=0;j<dimension;j++){
if(tableT[i][j]==null){
tableC[i][j]=0000;
}
else if(tableT[i][j] instanceof tiger){
tableC[i][j]=0001;
}
else if(tableT[i][j] instanceof tiger){
tableC[i][j]=0002;
}
}
}
}
public int[][] getTableC() {
return tableC;
}
public int getDimension() {
return dimension;
}
此外,int数组不是Object数组。在传递给JTable模型之前将其更改为Integer:
TableAdapter ta = new TableAdapter();
int[][] temp = ta.getTableC();
Integer[][] Result = new Integer[temp.length][temp[0].length];
for(int i = 0; i < temp.length; i++){
for(int j = 0; j < temp[0].length; j++)
result[i][j] = new Integer(temp[i][j]);
}
Object[] header = {"Column1", "Column2"};
jTable1.setModel(new javax.swing.table.
DefaultTableModel(result, header)