18

この質問では、JTextField で数値のみを受け入れる方法はありますか? 回答の 1 つは、JFormattedTextField に問題があることを示唆していました。

私はまだそれを使用していませんが、誰かがこのクラスの問題について拡張 (または反対) してくれませんか?

4

3 に答える 3

15

JFormattedTextField使い勝手が悪いので悪です。たとえば、テキスト フィールドが整数値のみを受け入れる必要がある場合、JFormattedTextFieldは古いゴミを許可し、フォーカスが失われると文句を言います。さらに悪いことに、フォーカスが失われたときのさまざまな設定可能な動作があります (どれも正しい選択ではないという明確な兆候です)。

また、「k3wl」フォーマッタの選択もあります。また、ドキュメントとの対話が不十分なようです (をインストールしようとしますが、それはインターフェイスDocumentFilterの一部ではありません)。Document

于 2009-08-24T02:55:40.110 に答える
9

JFormattedTextField が最も使いやすいクラスではないことは認めます。確かに問題はありますが、ほとんどのコンポーネントと同様に、いくつかの点では適切に機能し、他の部分ではうまく機能しません。

実際、MaskFormatter を使用するときにデータが入力されるので、Integer 値を編集できます。そのため、単純なタスクには効果的です。

データの編集は複雑な作業です。入力時にデータを編集する必要がある場合があります (整数値をチェックする場合)。入力後にデータを編集する必要がある場合があります (日付を検証する場合)。もちろん、無効なデータの処理方法を決定する必要があります。

重要なタスクを実行する場合、ある程度のパラメータの構成が必要になる場合があります。それらは常に希望どおりに、または期待どおりに機能するとは限らないため、このコンポーネントをいつ使用できるか、いつ使用する必要があるかを調べるために実験する必要があります.

于 2009-08-24T04:47:29.940 に答える
7

私は今のところ JFormattetTextField に苦労しています。NumberFormat.getPercentInstance()パーセント値のフォーマットに使用しようとしています。

最悪なのは.getValue()、ユーザーが見ているのと同じ値を返さないことです。たとえば25,5%、書式設定されたテキストフィールドに入力すると、 に丸められますが26%、 が.getValue()返されます0.255。それは悪です。

于 2010-02-04T09:13:11.040 に答える