Как изменить/добавить код к initComponents()
метод в Java на NetBeans? Когда я пытаюсь добавить любую строку кода, эта область, кажется, похожа только для чтения, и она выделяется в сером! Это для безопасности, вероятно, но я предполагаю, что существует способ отключить это.
Метод initComponents() регенерируется IDE по мере создания пользовательского интерфейса в редакторе GUI. Метод "охраняется" для предотвращения перезаписи кода, написанного пользователем.
Существует несколько способов косвенного добавления кода в этот метод:
Бросьте новый компонент на "холст" редактора дизайна для окна. редактора "холст" для окна.
Введите код как часть одного из следующих свойств кода: Pre-Creation Code, Post-Creation Code, Pre-Init Code, Post-Init Code, Post-Listener Code, Pre-Population Code, Post-Population Code и After-All-Set Code.
Есть еще несколько свойств кода, которые не изменяют метод initComponents()... но могут быть очень полезны: Pre-Declaration Code и Post-Declaration Code. alt text http://blogs.sun.com/vkraemer/resource/code-properties.png Примечание: редактор для этих свойств не является "богатым", поэтому я бы рекомендовал создать методы в "обычном редакторе", которые вы просто вызовете в initComponents().
Вы можете изменить код в методе initComponents() путем позиционирования или изменения "обычных" свойств "базовой панели" или элементов управления.
Предположительно, вы пишете приложение с помощью графического интерфейса пользователя Matisse.
Матисс генерирует нередактируемые блоки кода. Это требуется Матиссу, чтобы инструмент оставался синхронизированным с базой кода.
Matisse предоставляет ряд опций, позволяющих вставлять собственный код до, после или внутри кодовых блоков, таких как initComponents ()
.
См. Изображение ниже:
Здесь показана вкладка свойств для jPanel и некоторые параметры вставки кода.
Чтобы разрешить изменения как в исходном тексте, так и в редакторе графического интерфейса Matisse, NetBeans предотвращает редактирование в том, что он называет "охраняемыми блоками". Хотя можно представить, что IDE может интерпретировать практически любой код GUI, который вы напишете, на практике разработчикам IDE гораздо проще заключить автоматически генерируемый код GUI в один метод (initComponents()), а остальное оставить для редактирования.
Если вы уверены, что знаете, что делаете, вы можете легко редактировать .java файл из внешнего редактора, но:
Да, метод initComponents только для чтения, чтобы сохранить полный контроль для IDE. Вы можете добавить свой в конструктор сразу после initComponents.
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
myInitComponents();
}
public void myInitComponents() {
}