在netbeans中创建新项目时,如果我选择JAVA Desktop应用程序,它将创建一些代码,这些代码我不会像在Swing中学到的那样完全无法识别。
它导入软件包,例如:
org.jdesktop.application.SingleFrameApplication;
同样,main()的声明如下所示:
public static void main(String[] args) { launch(DesktopApplication2.class, args); }
这对我对JFrame,JPanel等的了解确实没有任何意义。
如果我尝试从头开始编写netbeans应用程序,则可以编写自己的swing应用程序,但找不到GUI编辑器。
从头开始创建Java应用程序时如何带GUI编辑器? 任何人都可以向我解释org.jdesktop.application.SingleFrameApplication和其他类吗? 请帮忙。这真令人沮丧。
你可能无意中选择了 Java Desktop Application
Java Desktop Application
基于Swing应用程序框架(JSR 296)创建桌面应用程序的框架。该模板提供了基本的应用程序基础结构,例如菜单栏,窗口状态的持久性和状态栏。使用此模板,你还可以生成代码来为数据库表创建GUI界面。
而不是 Java Application
Java Application
在标准IDE项目中创建一个新的Java SE应用程序。你还可以在项目中生成一个主类。标准项目使用IDE生成的Ant构建脚本来构建,运行和调试项目。
附录:File > New File > Java GUI Forms用于添加JPanel可以从main()的run()方法实例化的高级容器,例如enclosing 。
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内置的GUI编辑器(请注意“ Generated Code”):
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 }