0

JTextField を JGoodies の Bean にバインドするメソッドがあります

public static JTextField bindDoubleTextField(PresentationModel<?> adapter, String 

propertyName, boolean useBuffer)
{
   ValueModel valueModel = getValueModel(adapter, propertyName, useBuffer);
   DecimalFormat decimalFormat = new DecimalFormat("0.######");
   decimalFormat.setGroupingUsed(false);
   JTextField textField = BasicComponentFactory.createFormattedTextField(valueModel, decimalFormat);

   return textField;
}

コードの後半で、valueModel に propertyChangeListener を追加しますが、JTextField へのフォーカスを失った場合にのみイベントを受け取ります。入力時にこれらのイベントを受け取ることはできますか? 値が元の値と異なるかどうかに応じて、JTextField の背景色を設定できるようにしたいと考えています。入力時にコミットされた値は必要ありません。値が最後にコミットされた値と異なるかどうかを検出したいだけです。

4

2 に答える 2

1

入力時にこれらのイベントを受け取ることはできますか?

ドキュメント フィルタの実装またはドキュメント リスナの作成方法を参照してください。

于 2013-03-04T19:05:45.293 に答える
0

BasicComponentFactory.createTextField(ValueModel,boolean) を使用したほうがよい場合があります。これにより、2 番目の引数に false を渡すことができ、入力時にコミットが行われます。ただし、フォーマットと検証を自分で行うか、JGoodies 検証 API を使用する必要があります。

JGoodies は、使用するドキュメントやその他のフォーマッターと競合します。

于 2013-04-28T00:49:12.683 に答える