Netbeans восстанавливает неработающий код в TopComponent. Как это исправить?

Я занимался этим более недели, и теперь это начинает мешать моей продуктивности.

У меня есть JTextBox, к которому я применяю пользовательский фильтр документов. Чтобы добавить это, я щелкнул правой кнопкой мыши по элементу управления, зашел в Customize Code и добавил эту строку под всем:

 ((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());

И когда я захожу в Customize Code, он просто показывает правильный (верхний). Я закрываю Netbeans, редактирую файл с помощью Notepad++, удаляю строку, вызывающую сбой, и запускаю резервное копирование Netbeans. Теперь он компилируется, я запускаю его, тестирую, затем, когда я возвращаюсь, код восстанавливается с ошибочной строкой.

Я взорвал кэш для Netbeans, и он ничего не сделал, так что я действительно не знаю, как это исправить. Любой берущий?

Netbeans версия 7.3.1.

Обновление: я немного покопался и нашел это в файле *.form моего Topcomponent:

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

Возможно, удаление этого могло бы решить проблему, но я не уверен, и действительно не хочу рисковать разрушением этого проекта.

1 ответ

Решение
  1. Попробуйте очистить и перестроить ваш проект (по умолчанию Shift + F11). Если это не восстановит форму, и ошибка все еще сохраняется:
  2. Редактировать форму: заменить код в value свойство тега выше по вашему коду.

Что касается самой ошибки, вы должны поместить только сгенерированный код в сгенерированный раздел. Вы всегда можете сделать пост-инициацию после initComponents() метод в конструкторе. Это позволяет избежать возможных ошибок в GUI Editor и облегчает контроль кода для вас.

Другие вопросы по тегам