0

次のように、列に TextInputCell があります。

TextInputCell textCell = new TextInputCell();
    Column<EffortCost, String> hourColumn = new Column<EffortCost, String>(textCell) {  
        public String getValue(EffortCost object) {
            String formatted = NumberFormat.getFormat("0.00").format(object.getHours());

            return formatted;
        }
    };

「1」と書いた場合、文字列が返されました:「1.00」。私は同じ結果を望んでいますが、文字列をフォーマットしたくありません。ウィジェットにこれをすぐに実行させたいのですが、テキストを TextInputCell に入れます。つまり、テキストを自分のTextInputCell. これは「MaskedTextInputCell」のようなものです。これどうやってするの?いくつかの例を見ることができますか?

ご清聴ありがとうございました。

4

1 に答える 1

2

hourColumn に FieldUpdater を追加できます。この列のセルの値が変更されたときに起動する update() メソッドがあります。例えば:

hourColumn.setFieldUpdater(new FieldUpdater<EffortCost, String>() {
@Override
public void update(int index, EffortCost object, String value) {
    // do something when value changes
    // return NumberFormat.getFormat("0.00").format(object.getHours());
}
});

数字を入力するたびに、フォーマットと更新が行われます。

于 2014-03-21T12:13:06.697 に答える