Обойти блокировку сгенерированного кода в NetBeans 6.5? - PullRequest
4 голосов
/ 16 января 2009

В NetBeans GUI Builder генерирует код, который вам недоступен из редактора.

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

Могу ли я разрешить редактирование в этих регионах ... Обещаю, я буду осторожен:)

Спасибо.

Примечание: я не хочу терять генерацию кода

Ответы [ 10 ]

4 голосов
/ 10 марта 2009

Если вы откроете его во внешнем редакторе, есть две возможности:

  • нет никакой гарантии, что сделанные вами изменения будут работать (и ничего не нарушать) в редакторе интерфейса пользователя Netbeans
  • При следующем редактировании файла в Netbeans он будет восстановлен.

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

[сарказм] Что с графическим редактором перетаскивания, что вы можете изменить вручную? [/ сарказм];)

4 голосов
/ 16 января 2009

Если вы откроете файлы .java в Блокноте или WordPad, вы найдете пары комментариев, которые говорят

// GEN-BEGIN: <name of section>
...
// GEN-END: <name of section>

Удалите эти комментарии, и произойдут две вещи.

  1. Вы сможете редактировать в любом месте файла в NetBeans.
  2. NetBeans не сможет восстановить файл из редактора графического интерфейса.

Так что это может быть сделано, но не делайте этого, если вы действительно этого не хотите .


РЕДАКТИРОВАТЬ: «Примечание: я не хочу терять генерацию кода». Хорошо, давайте посмотрим здесь.

  1. Вы хотите изменить то, что генерируется.
  2. Вы не хотите терять генерацию кода.
  3. Вы не хотите использовать средства, которые NetBeans предоставляет для добавления пользовательского кода.

Звучит так, будто ты желаешь себе неприятностей. : D

2 голосов
/ 16 марта 2012

У меня была такая же проблема. Я расширил JPanel своим собственным классом панели, и я не смог упаковать его с остальным пользовательским интерфейсом. Сначала я искал в Интернете, и я нашел ваш вопрос. Я не смог найти элегантного решения этой проблемы. Поэтому я решил создать другой класс Java и скопировать в него созданный NetBeans код. Оно работало завораживающе. Я согласен, было бы неплохо, если бы мы могли изменить существующий код, как в .NET.

1 голос
/ 03 сентября 2014

Вы также можете попробовать переместить файл .form в

(имя проекта) \ src \ (имя JFrame / JPanel) .form

NetBeans теперь будет видеть его как .java файл.
Если вы не редактировали ничего необходимого для редактора графического интерфейса, вы можете переместить файл .form обратно в папку src.

1 голос
/ 17 января 2014

Я копирую метод initcomponents (), создаю свой собственный метод newInitComponents (), вставляю сгенерированный код и переопределяю то, что необходимо переопределить, прежде чем распространять код. Таким образом, когда в редакторе вносятся изменения, вы все равно можете скопировать и вставить код в новый метод. Вы сохраняете функциональность, не затрачивая на это возможность переопределять при необходимости. Просто вызовите newInitComponents () в вашем конструкторе, а не в оригинале. Это не самый эффективный способ ведения дел, но он делает то, что вы хотите.

0 голосов
/ 14 января 2017

Шаг # 1 Закройте проект в NetBeans

Шаг # 2 Удалите файл .form из исходного каталога вашего проекта

Повторно откройте проект, и он будет редактироваться сейчас!

0 голосов
/ 14 мая 2014

Очень просто ... дерьмовый UTF-8 не позволил мне скомпилировать один JasperReport (все сделано с помощью GUI). Итак, мне нужно было изменить Project на ISO-8859-1. Результат? Проект испорчен, и некоторые вещи, которые нужно исправить, находятся в заблокированных частях кода. Итак, мне действительно нужно редактировать эти автоматически сгенерированные части. Когда они будут восстановлены, они будут в порядке, потому что проект теперь iso-8859-1.

0 голосов
/ 30 апреля 2013

Перейдите на страницу дизайна и выберите любое из полей. Щелкните правой кнопкой мыши на любом выбранном поле и выберите «Код настройки». В «Коде настройки» измените весь код по умолчанию на создание пользовательских. Теперь вы можете редактировать свой дизайн кода, как вам нравится ...

0 голосов
/ 16 марта 2009

Если вы используете APT , вы можете переписать исходный код во время компиляции. Таким образом, вы можете переписать код, который есть на данный момент. Вы можете сохранить новый код в том же файле Java вместе с комментариями, чтобы объяснить, что происходит. Этот урок позволяет довольно легко начать работу. Скопируйте этот код, включите его, а затем настройте по своему вкусу. Чтобы выяснить, где в коде аннотированный метод называется getPosition () в объявлении.

0 голосов
/ 16 января 2009

Можете ли вы создать подкласс класса и переопределить метод, в котором находится этот код? Конечно, вам придется поддерживать метод с течением времени, когда вы вносите изменения в графический интерфейс.

Возможно, вы также можете посмотреть на AspectJ. Он будет изменять байт-код во время сборки и вносить изменения, которые вы определяете. Не уверен, что это дает вам достаточный контроль над тем, какой код изменить.

...