0

私はこれに 1 週​​間以上対処してきましたが、今では私の生産性を妨げ始めています。

カスタム ドキュメント フィルタを適用する JTextBox があります。これを追加するには、コントロールを右クリックして [コードのカスタマイズ] に移動し、すべての下に次の行を追加しました。

 ((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());

さて、これはコピーと貼り付けの仕事でした(他の場所でこれを使用したため)。フィルターを設定したかったフィールドは と呼ばれTextFieldます。うっかり OK をクリックしてコンパイルしたら、爆発してしまいました。ああ、私は私の間違いを見ます。修正して再コンパイルしても、まだエラーが発生します。今私のコードはこれを持っています:

 ((javax.swing.text.AbstractDocument)TextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());
 ((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());

そして、コードのカスタマイズに入ると、正しい (一番上の) ものだけが表示されます。Netbeans を閉じ、Notepad++ でファイルを編集し、問題のある行を削除して、Netbeans を起動します。コンパイルし、実行し、テストしてから、戻ったときに、コードが誤った行で再生成されました。

私はNetbeansのキャッシュを吹き飛ばしましたが、それは何もしなかったので、これを修正する方法について本当に途方に暮れています. テイカーはいますか?

Netbeans バージョン 7.3.1。

更新:少し調べてみたところ、Topcomponent の *.form ファイルでこれを見つけました。

<AuxValues>
    <AuxValue name="JavaCodeGenerator_AddingCodePost" type="java.lang.String" value="((javax.swing.text.AbstractDocument)jtfTextField.getDocument()).setDocumentFilter(new mylibrary.NumericDocumentFilter());"/>
</AuxValues>

おそらくこれを削除すると問題が解決する可能性がありますが、私にはわかりませんし、このプロジェクトを破壊する危険を冒したくありません.

4

1 に答える 1

1
  1. プロジェクトのクリーニングと再構築を試みます (デフォルトでは Shift + F11)。これでフォームが再生成されず、エラーが引き続き発生する場合:
  2. valueフォームを編集します。上記のタグのプロパティのコードを自分のコードに置き換えます。

エラー自体については、生成されたコードのみを生成されたセクションに配置する必要があります。initComponents()コンストラクターのメソッドの後にいつでも post-init を実行できます。これにより、GUI エディターで発生する可能性のあるエラーが回避され、コードの制御が容易になります。

于 2014-03-17T18:43:54.777 に答える