Редактор графического интерфейса Netbeans, генерирующий собственный непонятный код - PullRequest
7 голосов
/ 01 апреля 2010

При создании нового проекта в NetBeans, если я выбираю приложение JAVA Desktop, оно создает некоторый код, который Я НЕ ПРИЗНАЮ ВСЕ, как то, что я изучил в Swing.

Импортирует такие пакеты, как:

org.jdesktop.application.SingleFrameApplication;

также объявление для main () выглядит так:

public static void main(String[] args) {
            launch(DesktopApplication2.class, args);
        }

Это действительно не имеет никакого смысла в моих знаниях о JFrame, JPanel и т. Д.

Если я попытаюсь кодировать приложение NetBeans с нуля, я могу написать свое собственное приложение Swing, НО НЕ МОГУ НАЙТИ РЕДАКТОР GUI.

  • Как вызвать редактор GUI при создании java-приложения с нуля?
  • Может кто-нибудь объяснить мне этот org.jdesktop.application.SingleFrameApplication и другие классы?

Пожалуйста, помогите. Это действительно расстраивает.

Ответы [ 2 ]

24 голосов
/ 01 апреля 2010

Возможно, вы случайно выбрали Java Desktop Application

Создает каркас настольного приложения на основе Swing Application Framework (JSR 296) .Этот шаблон предоставляет базовую инфраструктуру приложения, такую ​​как строка меню, сохранение состояния окна и строка состояния.С помощью этого шаблона вы также можете сгенерировать код для создания интерфейса GUI для таблицы базы данных.

Вместо Java Application

Создает новое приложение Java SE встандартный проект IDE.Вы также можете создать основной класс в проекте.Стандартные проекты используют сгенерированный IDE сценарий сборки Ant для создания, запуска и отладки вашего проекта.

Добавление: используйте File > New File > Java GUI Forms для добавления высокоуровневых контейнеров, например, включающих JPanel, которыеможет быть создан из метода main() run().

Например, Main.main():

package temp;
import java.awt.EventQueue;
import javax.swing.JFrame;

public class Main {
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.add(new NewJPanel());
                f.pack();
                f.setVisible(true);
            }
        });
    }
}

и NewJPanel, встроенных в графический редактор (примечание «Создано»).Код "):

package temp;
public class NewJPanel extends javax.swing.JPanel {

    /** Creates new form NewJPanel */
    public NewJPanel() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();

        jLabel1.setText("Hello, world!");

        org.jdesktop.layout.GroupLayout layout =
            new org.jdesktop.layout.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(163, 163, 163)
                .add(jLabel1)
                .addContainerGap(157, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(113, 113, 113)
                .add(jLabel1)
                .addContainerGap(171, Short.MAX_VALUE))
        );
    }// </editor-fold>

    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    // End of variables declaration
 }
1 голос
/ 01 апреля 2010

Вы найдете больше о org.jdesktop.application.SingleFrameApplication здесь . Краткая информация, однако: это часть Swing Application Framework . Matisse (теперь называется Java Swing GUI Builder) работает, AFAIK, строго со структурой приложения, а не с обычными приложениями Swing. По сути, если вы работаете с необработанным Swing, вы в значительной степени сами по себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...