gpt4 book ai didi

java - 如何在 Netbeans 中将 2D 数组传递给 jtable

转载 作者:行者123 更新时间:2023-12-02 06:55:49 25 4
gpt4 key购买 nike

这是我第一次创建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()
));

它有以下错误: ]![Error (C:\Users\user\Desktop\error.png)

最佳答案

您的 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 数组不是对象数组。在传递给 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)

关于java - 如何在 Netbeans 中将 2D 数组传递给 jtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com