3

重複の可能性:
ブール値のJtable /ColumnRendererを設定します

今、私は自分のJtableにいます:

ここに画像の説明を入力してください

しかし、私は持っていたい:

ここに画像の説明を入力してください

したがって、私は、true/falseを次のようなオブジェクトに変換する必要があると思います。

  Object rowData[][] = { { "1", Boolean.TRUE }, { "2", Boolean.TRUE }, { "3", Boolean.FALSE },
      { "4", Boolean.TRUE }, { "5", Boolean.FALSE }, }; 

今、私は次のようなデータを取得しています:

    int i=0;
    data=new Object[tupel.size()][1];
    while(i<tupel.size()){
        row=tupel.get(i);
        data[i][0]=new Boolean(row.isTrueorFalse());//my "Boolean method"
        i++;
    }
}

だから私の質問は:

ダニを表示するようにデータをオブジェクトに変換するにはどうすればよいですか?

アップデート

isTrueorFalseメソッド:

public boolean isTrueorFalse() {
        return isTrueorFalse;
}
4

4 に答える 4

5

JTableにはブール値の組み込みサポートがあり、レンダラー/エディターはJCheckBoxを表示します

XxxTableModelの列を適切な列クラスでオーバーライドする必要があります

@Override
public Class getColumnClass(int column) {
    return getValueAt(0, column).getClass();
}
  • 例えば

  • より良いヘルプのために、SSCCEがあなたの問題を示し、短く、実行可能で、コンパイル可能であることをより早く投稿してください。そうでなければ、ここでのすべての答えは暗闇へのショットになる可能性があります

于 2012-10-24T06:11:00.483 に答える
2

あなたがそのdataような配列として欲しいと確信しているなら、あなたは以下をすることができます。それがあなたが必要としているものかどうかはわかりませんが。

data[i][0]= i;
data[i][1] = row.isTrueorFalse();

その後、以下のようにテーブルモデルにデータを設定できます

tableModel.set((Integer)data[i][0], (Boolean) data[i][1]);
于 2012-10-24T05:50:53.180 に答える
2
    data[i][0]=Boolean.valueOf(row.isTrueorFalse());

これにより、ブール値の新しいオブジェクトは作成されず、Boolean.TRUEまたはBoolean.FALSEのみが作成されます。

于 2012-10-24T05:58:40.770 に答える
2

独自のテーブルモデルを作成する必要があります。

次の点を探してください。

プログラマーがテーブルモデルオブジェクトを提供しない場合、JTableはDefaultTableModelのインスタンスを自動的に作成します。

そして、次のとおりです。

一方、SimpleTableDemoの自動的に作成されたテーブルモデルは、[年数]列に数値が含まれていることを認識しません(通常、右揃えで特定の形式にする必要があります)。また、Vegetarian列にブール値が含まれていることもわかりません。ブール値はチェックボックスで表すことができます。

構造は次のようになります。

JTable table = new JTable(new MyTableModel());

JTable(Object[][] rowData, Object[] columnNames)またはを使用する代わりにJTable(Vector rowData, Vector columnNames)。この場合DefaultTableModel、ブール値をチェックボックス(チェックボックス)として表示するにはインテリジェントではない、を使用します。

また、達成しようとしていることを達成するのに役立つサンプルコードもあります。

于 2012-10-24T06:04:30.940 に答える