Вы находитесь на странице: 1из 9

Un explicacion algo sencilla de como crear intefaces graficas basicas y funcionales

con netbeans =D

El Netbeans es un IDE (entorno de desarrollo) para trabajar con Java, es similar al


Visual Studio usado para trabajar con Visual Basic.

Empezaremos con algo basico, creando una minicalculadora capaz de sumar


numeros, en la cual se demuestra la interaccion entre botones y cajas de texto :P.

1. Creando el Proyecto

- En el menu File > New Project o en el Icono de Nuevo Proyecto (depende de si lo


tienen en ingles o español xD )

- En el panel de Categorias selecionar Java, en el panel de proyecto seleccionar


Aplicacion Java (Java Application) y luego en siguiente...

- En la caja de texto poner el nombre dle proyecto como "SumadeNumeros"

- Desmarcar la opcion de "carpata dedicada para librerias"

- Marcar la opcion de "Definir como proyecto principal", y desmarcar la opcion de


"Crear la Clase Main"

- Luego de esto en finalizar y ya entraremos al IDE a desarrollar nuestra app

2. Creando la Interfaz

Para proceder con la construccion de nuestra interfaz debemos crear un contenedor


en el cual pondremos todos los componentes graficos de la aplicacion (Algo asi
como el FORM en VB), luego crearemos un componente JForm, el contenedor sera
puesto en un nuevo paquete que aparecera en el listado de paquetes.

Creando el contenedor

- En la ventana de proyectos, clic derecho en SumadeNumeros, luego en Nuevo y


seleccionan JForm
- Como nombre de clase poner "SumadeNuemrosUI" (el UI nos indica que es la
parte grafica)
- Como paquete poner "my.SumadeNumeros"
- Finalizar

Con esto el IDE (NetBeans) crea un nuevo formulario (JForm) y una clase de
Nombres "SumadeNumerosUI", dentro de la aplicacion SumadeNumeros y abre el
formulario SumadeNumerosUI en modo diseño, luego el paquete
my.SumadeNumeros reemplaza al paquete original.

Agregando Componentes

Ahora usaremos la "Paleta" (similar al cuadro de Herramientas en VB) en el cual se


muestran los diferentes objetos graficos que podemos usar, los cuales para
agregarlos al formularios solo basta con arrastrarlos sobre el mismo...
Empezaremos por usar un JFrame, luego tres JLabels, tres JTextFields y tres
JButtons, y los acomodaremos de manera que tengamos un resultado como el
siguiente:

Ahora seleccionamos el JPanel y en la pestaña propiedades vamos a seleccionar


borde (...) y escogeremos un borde con titulo, en la propiedad de texto pondremos
el titulo del Panel como "Suma De Numeros"

Ahora renombraremos los demas componentes, doble clic en jLabel1 y en la


propiedad de texto pondremos "Numero 1" y haremos lo mismo para los otros dos
jLabels poniendo "Numero 2" y "Resultado". Despues de esto cambiaremos los
atributos de texto pero para los jtextFields dejandolos vacios, y cambiaremos los
atributos de texto de los tres botones (jButtons) colocando "Sumar", "Limpiar" y
"Salir" respectivamente.

Con esto se finalizaria la parte visual, dando un resultado similar a este:


Ahora nos toca agregar la parte de codigo.........

3. Agregando Funcionalidad

Bien, ahora tenemos que agregar funcionalidad a los botones y demas objetos en el
formulario, que junto con el codigo formaran una calculadora simple. Para poder
agregarle funcionlidad tenemos que manejar el proceso en base a eventos que
pasen en nuestra app, tales como el clic en un boton, o la entrada de usuario...etc.

Empecemos con el Boton de Salir, daremos clic derecho sobre el boton y en el


menu emergente buscaremos "Eventos --> Accion --> accionRealizada
(actionPerformed) "

Con esto el IDE automaticamente agregare el "Handler" que controlara los


eventos....que se recibiran mediante un "ActionListener"

Ahora se nos abrira el editor decodigo donde debemos poner lo que queremos que
haga el control, en este caso el boton de salida de la plicacion...por lo tanto el
codigo seria...

Código:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)


{
System.exit(0);
}

Y con esto el boton de Salir queda funcional, ahora regresaremos a la parte de


diseño y realizaremos el mismo proceso para darle funcionalidad a los otros dos
botones.

Boton Limpiar:
Código:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
}
Boton Sumar:
Código:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)


{
// Definimos variables de coma flotante (float).
float num1, num2, result;
// Transformamos (parse)lo introducido a float.
num1 = Float.parseFloat(jTextField1.getText());
num2 = Float.parseFloat(jTextField2.getText());
// Reaalizamos la suma.
result = num1+num2;
// Mostramos el resultado en jTextField3.
// Pero transformandolo de nuevo a un String
jTextField3.setText(String.valueOf(result));
}

Con esto el programa esta completo y listo para ponerlo a funcionar... !

4. Corriendo la Aplicacion

En el menu, buscaremos la opcion de "Compilar" (Build) el proyecto, una vez que


esto a finalizado procedemos a Ejecutarlo (Run), con lo que visualizaremos en
pantalla a nuestra aplicacion corriendo......si por alguna razon sale un error de que
el proyecto no tiene una Clase Main, deberan seleccionar
my.SumadeNumeros.SumadeNumerosUI como la clase principal y aceptar para que
pueda ejecutarse.

Lo Anterior mostrado es para responder a un simple evento mostrado en un Boton,


para otros eventos disponibles se puede consultar la ayuda del NetBeans.

Al final, el codigo escrito por nosotros, mas el codigo que automaticamente es


agregado por NetBeans y que es el encargado de crear las variables principales y
de inicializar el Form debe ser algo parecido a esto...

Código:

/*
* SumaDeNumerosUI.java
* Created on 06/03/2009, 12:37:47
*/

package sumadenumeros;

/**
* @author SmartGenius
* From: CodeMakers
*/
public class SumaDeNumerosUI extends javax.swing.JFrame {

public SumaDeNumerosUI() {
initComponents();
}

@SuppressWarnings("unchecked")

private void initComponents() {


jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE
);

jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Su
ma de Numeros"));

jLabel1.setText("Numero 1");

jLabel2.setText("Numero 2");

jLabel3.setText("Resultado");

jButton1.setText("Limpiar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Sumar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("Salir");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

javax.swing.GroupLayout jPanel1Layout = new


javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.TRAILING, false)
.addComponent(jTextField1,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField2,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField3,
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jButton2,
javax.swing.GroupLayout.PREFERRED_SIZE, 79,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton3,
javax.swing.GroupLayout.PREFERRED_SIZE, 66,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel1))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RE
LATED)
.addComponent(jTextField2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addComponent(jTextField3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN
RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.BASELINE)
.addComponent(jButton2)
.addComponent(jButton1)
.addComponent(jButton3))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
DING)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);

pack();
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)


{
System.exit(0);
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)


{
float num1, num2, result;
num1 = Float.parseFloat(jTextField1.getText());
num2 = Float.parseFloat(jTextField2.getText());
result = num1+num2;
jTextField3.setText(String.valueOf(result));
}

public static void main(String args[]) {


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SumaDeNumerosUI().setVisible(true);
}
});
}

private javax.swing.JButton jButton1;


private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;

Y eso es todo...tenemos nuestra app andando =D

Saludos ! =)

Вам также может понравиться