0

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 missing と言い続けているので、メソッド getDimension() を呼び出して、さまざまな方法で挿入しました

new int[getDimension()][] = TableAdapter.getTableC()

また

new int[getDimension()][new int[getDimension()][] = TableAdapter.getTableC()

前もって感謝します。私は Netbeans を使用しています。


2種類の動物を持つ動物テーブルを取得し、これから簡単にするために新しいテーブル(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:\Users\user\Desktop\error.png)

4

2 に答える 2

1

おそらく、あなたの TableAdapter.getTable() メソッドは一次元の配列を返します。また、テーブルヘッダーを提供していませんが、それが例外の直接の原因ではないと思います。次のように setModel を呼び出す必要があります。

Object[] header = {"Column1", "Column2..."};
jTable1.setModel(new javax.swing.table.
    DefaultTableModel(TableAdapter.getTableC(), header)
于 2013-06-29T09:59:18.200 に答える
1

getTableC メソッドは静的ですが、配列を初期化する Table メソッドは静的ではないため、初期化されていない配列が返されます。Table メソッドを静的にするか、getTableC、tableC、および次元から 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)
于 2013-06-29T11:09:35.033 に答える