0

JTable拡張されたモデルがありAbstractTableModelます。4 つの列があります。最初の 2 列は文字列を保持し、最後の 2 列は double 型のデータを保持します。データが Null の場合、最後の 2 列には 0.0 が表示されます。

しかし、値がnullまたは0の場合は空白として表示したい。そして、セルを編集して数値を入力すると、倍精度のデータ型の値が設定されます。

col1 || col2 || col3 || col4 
-----------------------------
aaa  || a1  || 250.00||
bb   || b1  ||       || 10.5
============================

getValueAt(int rowIndex, int columnIndex)columnIndex が 3 と 4 の場合、メソッドを変更して " " を返すことで解決できるかもしれませんが、別の問題が発生します。setValueAt(Object value, int row, int col)セルを編集すると、文字列値が返され、メソッドで文字列値を解析して double にする必要がありますDouble.parseDouble(value.toString());

Doubleしかし、文字列値を;に解析するのは賢明でも正しくもないと思います。setCellEditor良い解決策かもしれないと思います。しかし、セルエディタをダブルデータ型に設定する方法がわかりません。

mytable.getColumnModel().getColumn(3).setCellEditor(???);

解決策を教えてください。

4

2 に答える 2

3

CellEditor ではなく、CellRenderer を変更する必要があります。

こちらの「コンセプト: エディターとレンダラー」をお読みください:

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html

于 2013-08-10T14:00:41.220 に答える