Netbeans Designer и файлы .form в папке ресурсов - PullRequest
0 голосов
/ 20 апреля 2020

Обычно макет проекта таков, что src/main/java содержит файлы .java, а src/main/resources содержит ресурсы. Таким образом, файлы *.form должны быть преобразованы в resources. Однако NetBeans не находит их.

Возможно ли, чтобы NetBeans загружал соответствующий файл .form из другой папки?

Может быть, я понял src/main/java неправильно и .form должен также go там?!

Та же папка

enter image description here

Различные папки

enter image description here

1 Ответ

1 голос
/ 27 апреля 2020

Что такое файл .form

От faq :

Файл .form представляет собой файл XML, который визуальный редактор использует для хранения информация о форме GUI. Это гораздо надежнее, чем чтение информации из исходного кода. Вам не нужно распространять файл .form с вашим приложением; он используется только в IDE. Однако, если вы хотите снова открыть свою форму в редакторе форм, вам следует сохранить файл

Расположение макета

Действительно стандартный каталог расположение для Проект maven состоит из src/main/java для java файлов и src/main/resources для ресурсов. Но это верно только для Maven проектов.

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

Использовать другая папка для файлов .forms

К сожалению, их невозможно отделить от соответствующих так называемых «братских» файлов, см. ниже. Они слишком тесно связаны друг с другом. Например, если вы посмотрите на древовидную структуру проекта, NetBeans скрывает файлы .form , если в одном каталоге находятся соответствующие файлы java.

Давайте посмотрим на исходный код, точно метод findPrimaryFile, который используется для поиска первичного файла :

  protected FileObject findPrimaryFile(FileObject fo) {
        if (fo.isFolder()) return null;
        String ext = fo.getExt();
        if (ext.equals(FORM_EXTENSION))
            return FileUtil.findBrother(fo, JAVA_EXTENSION);

        FileObject javaFile = findJavaPrimaryFile(fo);
        return javaFile != null
                    && FileUtil.findBrother(javaFile, FORM_EXTENSION) != null ?
            javaFile : null;
    }

. Он вызывает findBrother метод, который ищет подходящие .form или java файлы, и всегда выглядит для "братского" файла в том же каталоге :

public static FileObject findBrother(FileObject fo, String ext) {
    if (fo == null) {
        return null;
    }

    FileObject parent = fo.getParent();

    if (parent == null) {
        return null;
    }
    return parent.getFileObject(fo.getName(), ext);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...