java - gui - jframe form netbeans
Editor de GUI de Netbeans generando su propio código incomprensible (2)
Encontrará más información sobre org.jdesktop.application.SingleFrameApplication
aquí . Breve resumen, sin embargo: esto es parte del Marco de Aplicación Swing . Matisse (ahora llamado Java Swing GUI Builder) trabaja, AFAIK, estrictamente con el marco de aplicación, no con las aplicaciones generales de Swing. Básicamente, si trabajas con Swing crudo, estás más o menos solo.
Al crear un nuevo proyecto en netbeans, si selecciono la aplicación JAVA Desktop, se crea un código que NO RECONOCTO en absoluto como lo que aprendí en swing.
Importa paquetes como:
org.jdesktop.application.SingleFrameApplication;
también, la declaración para main () se ve así:
public static void main(String[] args) {
launch(DesktopApplication2.class, args);
}
Esto realmente no tiene ningún sentido según mi conocimiento de JFrame, JPanel, etc.
Si intento codificar una aplicación de netbeans desde cero, puedo escribir mi propia aplicación de swing PERO NO PUEDO ENCONTRAR EL EDITOR DE GUI.
- ¿Cómo traigo el editor de GUI al crear una aplicación Java desde cero?
- ¿Alguien puede explicarme esta org.jdesktop.application.SingleFrameApplication y otras clases?
Por favor ayuda. Esto es realmente frustrante
Puede haber seleccionado inadvertidamente Java Desktop Application
Crea un esqueleto de una aplicación de escritorio basada en el Swing Application Framework (JSR 296) . Esta plantilla proporciona una infraestructura de aplicaciones básica, como una barra de menú, persistencia del estado de la ventana y barra de estado. Con esta plantilla, también puede generar código para crear una interfaz GUI para una tabla de base de datos.
En lugar de Java Application
Crea una nueva aplicación Java SE en un proyecto IDE estándar. También puedes generar una clase principal en el proyecto. Los proyectos estándar usan una secuencia de comandos Ant build generada por IDE para construir, ejecutar y depurar su proyecto.
Adición: use File > New File > Java GUI Forms
para agregar contenedores de alto nivel, por ejemplo, un JPanel
, que pueda ser instanciado desde el método run()
de main()
.
Por ejemplo, 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);
}
});
}
}
Y un NewJPanel
integrado en el editor GUI (nota "Código generado"):
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
}