を使用することができ、JavaのすべてのオブジェクトはObject
の相続人です。つまり、Object
の代わりに、あなたが望むものすべてを返すことができます。
public class MyTableModel extends DefaultTableModel implements TableModel {
@Override
public Class<?> getColumnClass(int column) {
switch (column) {
case 0: return Integer.class;
case 1: return Double.class;
case 2: return Boolean.class;
case 3: return Date.class;
case 4: return String.class;
}
return Object.class;
}
@Override
public Object getValueAt(int row, int column) {
switch (column) {
case 0: return 1;
case 1: return 1.2;
case 2: return true;
case 3: return new Date();
case 4: return "My Text Value";
}
return new Object();
}
}
あなたが直接オブジェクトをターゲットにすることができます(等号のような)オブジェクトの仮想メソッドを使用している場合:あなたは適切な型に明示的なキャストを作成する必要があります、より具体的な事柄については
textfield.getText().equals(model.getValueAt(1, 4));
を(それはTableMOdel#getColumnClass(int)
を返す)。
更新: モデルでは、値の取得に明示的なキャストを保存するテンプレートメソッドを追加できます。
public <T> T getValue(int row, int column) {
return (T) getValueAt(row, column);
}
次のようにあなたは、セルの値を使用することができます:セルの
Integer var0 = model.getValue(1, 0);
Double var1 = model.getValue(1, 1);
Boolean var2 = model.getValue(1, 2);
Date var3 = model.getValue(1, 3);
String var4 = model.getValue(1, 4);
種類を?あなたはどこからそれを手に入れますか?これまでに何を試しましたか? – Stultuske
はい、 'TableModel#getColumnClass(int)'は列の型を返します。 –
@Stultuske私は自分の質問を編集しました。 – Abdane