4

次の検証を持つ2つのテキストフィールドが必要です

  1. どちらも整数でなければなりません
  2. 1 つのテキスト フィールドの値は、他のテキスト フィールドの整数倍にする必要があります。

これには 2 つの JFormattedTextFields を使用しました。これは私が今までやってきたことです

NumberFormat updateFormat,sampleFormat;
updateFormat = NumberFormat.getNumberInstance();
updateFormat.setMaximumFractionDigits(0);
updateFormat.setParseIntegerOnly(true);
sampleFormat = NumberFormat.getNumberInstance();
sampleFormat.setMaximumFractionDigits(0);
sampleFormat.setParseIntegerOnly(true);
javax.swing.JFormattedTextField jFormattedTextField1 =new javax.swing.JFormattedTextField(updateFormat);        
javax.swing.JFormattedTextField jFormattedTextField2 = new javax.swing.JFormattedTextField(sampleFormat);

これの助けを借りて、私の最初の部分は完了しました。今、私は 2 番目の部分で立ち往生しています。つまり、jFormattedTextField1 の値は、j​​FormattedTextField2 の整数倍でなければなりません。NumberFormat を拡張してカスタマイズする必要があると思います。しかし、どうすればいいですか?私を助けてください

4

2 に答える 2

5

Validating InputInputVerifierで説明されているように、の使用も検討してください。

于 2011-08-06T18:08:40.807 に答える
2

制限はデータ形式の制限ではなく、データ値の制限であるため、 NumberFormat は問題の「2番目」の部分では機能しません。2 番目の部分には DocumentFilter を使用する必要があると思います。これらの使用方法の詳細については、こちらをご覧ください:ドキュメント フィルターの実装

于 2011-08-06T11:34:00.257 に答える