Sei sulla pagina 1di 20

Marcela Schindler Nualart 1

Swing con Netbeans


Ver tutoriales de Boris berkley en youtube interfaz grafica Netbeans (revisarlos todos los de java, interfaz grafica).
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/10/8eEtmYrgIJQ
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/9/0eJaNvpPT8c
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/8/0THm1fwBTH8
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/7/AKDWKiUzOwA
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/6/PRUC_pXIVew
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/5/hNjlmhDvwVw
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/4/K1Ud_EesoRI
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/3/TApSolmzfCY
http://www.youtube.com/user/borisberkley#p/c/5BAE508026F6B3C5/2/VDpHmy1LJyE


Para trabajar con la parte grfica cuando trabajemos en Netbeans ser con programas JFrame Form (ya no Java class)
Dentro de la aplicacin donde tenemos los programas, al crear uno nuevo ser New programs JFrame Form.

Pngale nombre al programa swing1
Aparece una ventana con un rectngulo vacio, es el rea de diseo de la ventana y al lado derecho una Paleta con men
de opciones de herramientas a usar en el Frame.
El rectngulo es el esquema de lo que se ver en la pantalla, el diseo, el frame
Dentro de las opciones de la Paleta estn las de swing control que usaremos

Marcela Schindler Nualart 2

Estos controles son distintas herramientas para poner en el frame como botones, scroll, leyendas, cajones que leern
informacin, entre otras
Las que ms usaremos son:
Label: etiqueta que sirve para mostrar un texto. Por ejemplo: Ingresa un nmero:
Textfield: campo que sirve para leer informacin ingresada por el usuario.
Button: botn que al presionar hace algo.
Un tem que puede ser seleccionado o no
tem para seleccionar unidades
Un tem que puede ser seleccionado o no
tem que permite seleccionar entre una lista de opciones.






Marcela Schindler Nualart 3

Ejemplo 1
Tome la que dice Label y arrstrela a la ventana. Lo mismo para Button y TextFiel, ordnelas como se muestra en la
figura.


Cambiar el texto label1, con el cual se ver en pantalla Muestra, eso se hace haciendo un clic en el elemento, aparece
un men y selecciona Edit Text: y digitar Muestra.
De la misma forma para eliminar Texfiel1 y en Button1 se vea Presiona
Para cambiar el nombre de las variables se procede en forma similar. Para cambiar el nombre de label1 clic sobre ella y
seleccione Change Variable Name, digite lmuestra, l de label y muestra para recordar que escribe el label, para Texfieldl1
ponga texto, y para button1 boton.
Si corremos el programa con Run/Run File se ver como est quedando nuestro
programa:
Se ve una ventana con los elementos.
Si presionamos el botn no pasa nada
Cierre la ventana
Debemos codificar que es lo que queremos que haga cuando se presione el botn.
Para ello debemos presionar doble clic sobre Presiona, que nos cambiara de
lengeta de la Design a la Source.
Marcela Schindler Nualart 4



Y veremos

Nos lleva con el cursor a botonActionPerformed que es el lugar que indica el botn ha sido presionado.
En ese lugar escribimos texto.setText(Hola);
Que indica que en el campo texto lo seteemos, modifiquemos y que ahora aparezca Hola
Ejecutmoslo ahora con Run /RunFile y presionemos el botn Presiona


Cierre la ventana de ejecucin.
Si desea volver al esquema de Diseo seleccione la lengeta Design.
Marcela Schindler Nualart 5


Ejemplo 2


Este programa se llama swing5, es un JFrame Form
El primer label se llama l1, esta seleccionado, si ve a mano derecha en Properties se ve el nombre de la variable, el Font
modificado a 14 y muestra en pantalla Valor1
El label 2 se llama l2 y se cambio el Font a tamao 14 y bold. y muestra en pantalla Valor2
El label 3 se llama l3 y se cambio el Font a 14 e Italic y muestra en pantalla Suma.
Adems el background es verde, el cual tambin se modifica en Properties.
Las variables del programa son:
// Variables declaration - do not modify
private javax.swing.JButton b1;
private javax.swing.JLabel l1;
private javax.swing.JLabel l2;
private javax.swing.JLabel l3;
private javax.swing.JTextField t1;
private javax.swing.JTextField t2;
private javax.swing.JTextField t3;
// End of variables declaration
Marcela Schindler Nualart 6

Para este programa se espera que el usuario ingrese dos nmeros, uno en cada textfield, y al
presionar el botn Calcular se muestre en el tercer textfiel la suma de ambos.
Para ello, presionar el botn calcular dos veces, nos lleva a la ventana Source, al la accin del botn b1 cuando es
ejecutado, en el mtodo actionPerformed. Aqu debemos capturar el dato del texto 1, t1, con el mtodo getText(), el
valor recibido, un string se debe transformar a doubl con el mtodo Double.parseDouble() y asignarlo a una variable
double valor1,valor2;
valor1= Double.parseDouble(t1.getText());

Lo mismo para recuperar el valor de t2
valor1= Double.parseDouble(t1.getText());

Luego sumar ambos valores y almacenarlo en una variable
valor1=valor1+valor2;
Despus el valor obtenido se debe poner en el texto t3, con el mtodo setText(String), como valor1 es double le
agregamos un espacio
t3.setText(valor1+);
As se ve en Source:


Si ejecutamos el cdigo se ve:
Marcela Schindler Nualart 7



Ejercicio hacer.















Marcela Schindler Nualart 8

Ejemplo 3.
Usar radiobutton, y agrupacin de botones


//
Variables declaration - do not modify
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JLabel ltitulo;
private javax.swing.JRadioButton ramarillo;
private javax.swing.JRadioButton razul;
private javax.swing.JRadioButton rrojo;
Si se hace doble clic en rrojo, cambiamos el color de las letras del ttulo a rojo
private void rrojoActionPerformed(java.awt.event.ActionEvent evt) {
this.ltitulo.setForeground(Color.red); }
Si se hace doble clic en ramarillo, cambiamos el color de las letras del ttulo a rojo
private void ramarilloActionPerformed(java.awt.event.ActionEvent evt) {
this.ltitulo.setForeground(Color.yellow); }
Si se hace doble clic en razul, cambiamos el color de las letras del ttulo a rojo
private void razulActionPerformed(java.awt.event.ActionEvent evt) {
this.ltitulo.setForeground(Color.blue); }

Falta seleccionar y agrupar
rrojo debe partir como seleccionado en Propiedades seleccione selected
Si se ejecuta y se selecciona amarillo, quedan ambas seleccionadas

Marcela Schindler Nualart 9

Para slo seleccionar una a la vez:
Llevar un botn de tipo Button Group a un rea de diseo vaca.
Ahora seleccione rrojo y en propiedades en button group elija buttongroup1
Hacer lo mismo para amarillo y azul.
Esto har que los tres botones estn agrupados y uno solo de ellos este seleccionado.

Ejemplo 4.
Como usar comboBox. En este ejemplo se puede elegir entre Rojo, amarillo o azul, se
despliega un rea de panel el color seleccionado.




















Marcela Schindler Nualart 10



// Variables declaration - do not modify
private javax.swing.JComboBox jComboBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;

Para darle tems al combo box, se debe colocar los tems en el constructor
public class swing82 extends javax.swing.JFrame {
public swing82() {
initComponents();
this.jComboBox1.addItem("Ingresa");
this.jComboBox1.addItem("Rojo");
this.jComboBox1.addItem("Amarillo");
this.jComboBox1.addItem("Azul");
}
Ahora hay que hacer algo por cada tem, cuando ingrese rojo el panel se pondr rojo

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int indice=this.jComboBox1.getSelectedIndex();
if(indice==1)
this.jPanel1.setBackground(Color.red);
else if(indice==2)
this.jPanel1.setBackground(Color.yellow);
else
if(indice==3)
this.jPanel1.setBackground(Color.blue);
}

Ejemplo 5
Aqu usaremos la opcion JCheckBox, que permite seleccionar o no un color si selecciona dos,
se ejecutan ambas.
Ac el panel se pinta segn la combinacin de JCheckBox seleccionados.
Marcela Schindler Nualart 11



// Variables declaration - do not modify
private javax.swing.JCheckBox amarillo;
private javax.swing.JCheckBox azul;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JCheckBox rojo;

Usaremos el evento cuando se selecciona un checkbox y el mouse se mueve revisa cual es
seleccionado y se pone el panel de ese color.
private void formMouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(this.azul.isSelected() && !amarillo.isSelected() &&!rojo.isSelected())
jPanel1.setBackground(Color.blue);
if(this.rojo.isSelected()&&!this.azul.isSelected() && !amarillo.isSelected())
jPanel1.setBackground(Color.red);
if(this.amarillo.isSelected()&&!this.rojo.isSelected()&&!this.azul.isSelected())
jPanel1.setBackground(Color.yellow);
if(this.azul.isSelected() && amarillo.isSelected() &&!rojo.isSelected())
jPanel1.setBackground(Color.GREEN);
if(this.azul.isSelected() && rojo.isSelected()&& ! amarillo.isSelected())
jPanel1.setBackground(Color.MAGENTA);
if(this.amarillo.isSelected() && azul.isSelected() &&rojo.isSelected())
jPanel1.setBackground(Color.DARK_GRAY);
if(this.rojo.isSelected() && amarillo.isSelected() &&!azul.isSelected())
jPanel1.setBackground(Color.orange);
if(this.amarillo.isSelected() && azul.isSelected() && !rojo.isSelected())
jPanel1.setBackground(Color.green); }
Marcela Schindler Nualart 12

Ejemplo 6
Usaremos spinner. Con el spinner se indica la cantidad de unidades, en el text field cual es el
precio y presionando el botn se muestra el resultado de la multiplicacin.


// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JLabel lcantidad;
private javax.swing.JLabel lprecio;
private javax.swing.JLabel lresultado;
private javax.swing.JTextField tprecio;

Cuando se presione el botn debe convertir la cantidad del spinner a int y el precio a int
tambin. Luego multiplicar

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int cantidad, precio;
cantidad=Integer.parseInt(this.jSpinner1.getValue().toString());
precio= Integer.parseInt(this.tprecio.getText().trim());
lresultado.setText(cantidad*precio+"");
}





Marcela Schindler Nualart 13

Ejemplo 7.
Lista. Se ingresan elementos a la lista, tambin se puede seleccionar de la lista elementos y
estos eliminarlos, o derechamente limpiar la lista y dejarla vaca




En este programa se usar un componente que puede seleccionar uno o ms campos de una lista, un botn para
agregar, uno que elimina un elemento de la lista que este seleccionado y uno que limpia toda la lista (los borra todos),
un textfield para leer datos.

Marcela Schindler Nualart 14

// Variables declaration - do not modify
private javax.swing.JButton bagregar;
private javax.swing.JButton belimimar;
private javax.swing.JButton blimpiar;
private javax.swing.JLabel cant;
private javax.swing.JLabel ingresenumero;
private javax.swing.JList jList1;

private javax.swing.JLabel titulocantidad;
private javax.swing.JTextField tnumero;



Se debe declarar una variable que maneje la insercin y eliminacin de elementos en la lista, esta se debe colocar al
comienzo de la clase, como variable global
public class swing9 extends javax.swing.JFrame {
DefaultListModel dim=new DefaultListModel();

Para agregar un elemento se debe presionar el botn Agregar, luego en el cdigo en el
mtodo action performed del botn agregar se debe:
private void bagregarActionPerformed(java.awt.event.ActionEvent evt) {
//obtener el numero ingresado por el usuario en el campo de texto, para que no tome en cuenta los espacios se usa el //
mtodo trim() que los elimina
int numero=Integer.parseInt(this.tnumero.getText().trim()) ;
//agrega el nmero al manejador dim
dim.addElement(numero);
//dim modifica la lista
this.jList1.setModel(dim);
//el campo de texto se deja vacio
this.tnumero.setText("");
//vuelve el cursor a textfield para que quede esperando otro numero
this.tnumero.requestFocus();
// se obtiene la cantidad de elementos de la lista
int cantidad=dim.size();
// en el label cant se pone la cantidad
this.cant.setText(cantidad+""); }
Marcela Schindler Nualart 15


Para el botn eliminar:
private void belimimarActionPerformed(java.awt.event.ActionEvent evt) {
// capturamos de elementos de la lista el que esta seleccionado
int indice= this.jList1.getSelectedIndex();
//de dim se remueve el elemento
this.dim.removeElementAt(indice);
//se entrega el nuevo dim a lista
this.jList1.setModel(dim);
//el nuevo largo de lista se captura
int cantidad=dim.size();
//se modifica el label con la nueva cantidad de elementos
this.cant.setText(cantidad+""); }

Para limpiar completamente la lista y dejarla vaca
private void blimpiarActionPerformed(java.awt.event.ActionEvent evt) {
//elimina todos los elementos de dim
this.dim.removeAllElements();
//el nuevo dim se agrega a lista
this.jList1.setModel(dim);
//el largo de dim se guarda en cantidad, podria directamente ponerse cero...
int cantidad=dim.size();
//la cantidad setea a cant
this.cant.setText(cantidad+"");
}

Ejemplo 8
Usa dos ventana, cuando se presiona el botn mostrar aparece una ventana jdialog con el
nombre y apellido juntos.


Marcela Schindler Nualart 16


En este programa debemos trabajar con dos ventanas, en una recibimos los datos y en la otra los mostramos.
La ventana Padre es un Jframe form y la ventana hijo es un jdialog (ver que en el contorno se puede solo cerrar).
Para la ventana padre:
Necesitamos 2 label, 2 textfield, un botn.
// Variables declaration - do not modify son las herramientas de swing que se usaron
private javax.swing.JButton bmostrar;
private javax.swing.JLabel lApellido;
private javax.swing.JLabel lNombre;
private javax.swing.JTextField tapellido;
private javax.swing.JTextField tnombre;

Para el botn debemos recuperar el nombre y el apellido que son de tipo String y guardarlos juntos en una variable.
private void bmostrarActionPerformed(java.awt.event.ActionEvent evt) {
String nombre,apellido,nombreCompleto;
nombre=this.tnombre.getText();
apellido=this.tapellido.getText();
nombreCompleto=nombre+ " "+ apellido;
SwingHijo h = new SwingHijo(new swingPadre(),true, nombreCompleto);
h.setVisible(true); }
Lo prximo es crear la ventana hijo y enviar el nombrecompleto
Para ello debemos crear un objeto de tipo hijo, y llamar al constructor, los parmetros quien la llama, la ventana padre,
true y el String con el nombre completo
SwingHijo h = new SwingHijo(new swingPadre(),true, nombreCompleto);
Luego debemos dejar visible esa ventana.
h.setVisible(true);

Para la clase SwingHijo:
Debemos crear un constructor que reciba el String con el nombre completo, para eso
copiamos el ya existente
El constructor existente es:
public SwingHijo(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents(); }
Marcela Schindler Nualart 17

Se le agrega el String, el resto se deja igual, y al label del hijo se le llena con el nombre completo al constructor nuevo
public SwingHijo(java.awt.Frame parent, boolean modal,String nombreCompleto) {
super(parent, modal);
initComponents();
this.jLabel1.setText(nombreCompleto);
}

// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;




Ejemplo 9
Se usaran dos ventanas, en una se recopila la informacin y cuando se presiona el botn
generar se llama a la otra con los datos previos.
Este ejemplo rene los botones revisados previamente en los ejemplos.




Para la clase swingElectrodomesticos, la ventana base
Los items usados son:
// Variables declaration - do not modify
private javax.swing.JButton Generar;
private javax.swing.JButton Nuevo;
private javax.swing.JButton Salir;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JComboBox jComboBox1;
Marcela Schindler Nualart 18

private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JLabel lcliente;
private javax.swing.JLabel lprecio;
private javax.swing.JTextField tcliente;
private javax.swing.JTextField tprecio;
// End of variables declaration

Donde los items jCheckBox1, ComboBox1, jRadioButton1, jSpinner1, se convinan entre ellos.

Para darle valores a los tems del comboBox en el constructor de la clase se agregan las
opciones.

public swingElectodomesticos() {
initComponents();
//llena los items del combobox, estos deben ser reconocidos
//en todas partes, luego se deben declarar en el constructor
this.jComboBox1.addItem("Seleccione");
this.jComboBox1.addItem("Televisor");
this.jComboBox1.addItem("Radio ");
this.jComboBox1.addItem("Notebook");
this.jComboBox1.addItem("Video ");
this.jComboBox1.addItem("Netbook ");
}






Lo siguiente es dada la opcin que se seleccione debe mostrarse el precio asociado a este
tem, luego aqu es importante la posicin del tem, donde la posicin es para seleccione, la
1 para Televisor.
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {

int indice;
double precio=0.0;
indice= this.jComboBox1.getSelectedIndex();

Marcela Schindler Nualart 19

switch(indice){
case 1: precio=200000;
break;
case 2: precio=80000;
break;
case 3: precio=500000;
break;
case 4: precio=100000;
break;
case 5: precio=300000;
}
this.tprecio.setText(precio+" ");
}

Cuando se presiona el botn Generar se debe recuperar la informacin y entregarla a la
otra ventana.

private void GenerarActionPerformed(java.awt.event.ActionEvent evt) {
// en este botn se debe recuperar toda la informacin y as generar la boleta o factura de pago

String cliente,producto,documento="";
double precio,subtotal,descuento,total;
int cantidad;
cliente=this.tcliente.getText();
//el tem selecionado del combobox se pasa a string y se almacena en una variable
producto=this.jComboBox1.getSelectedItem().toString();
// el precio de tprecio de tipo string se convierte a double
precio=Double.parseDouble(this.tprecio.getText());
// el valor almacenado en el spinner se pasa a string y se convierte a entero
cantidad=Integer.parseInt(this.jSpinner1.getValue().toString());

subtotal=cantidad*precio;
descuento=0;
//aqu se verifica si fue seleccionado el checkbox para hacer o no el descuento
if(this.jCheckBox1.isSelected())
descuento=.15*subtotal;
//se verifica si es boleta o factura
if(this.jRadioButton1.isSelected())
documento="Boleta";
else
documento="Factura";

total=subtotal-descuento;
//se crea un objeto de tipo swingElectro2 para que se cree la otra ventana, se le pasa la informacin recolectada
Marcela Schindler Nualart 20

swingElectro2 p= new swingElectro2(new swingElectodomesticos(), true, documento, cliente, producto, precio,
cantidad, subtotal, descuento, total);
//se hace visible la nueva ventana
p.setVisible(true);
}
Si se desea crear un pedido nuevo y borrar lo ya hecho. Se vuelven los tems a cero
private void NuevoActionPerformed(java.awt.event.ActionEvent evt) {
this.tcliente.setText("");
this.jComboBox1.setSelectedIndex(0);
this.tprecio.setText("0.0");
this.jSpinner1.setValue(0);
this.jCheckBox1.setSelected(false);
this.jRadioButton1.setSelected(true);
this.tcliente.requestFocus();
}
Si se desea salir y no seguir con el programa
private void SalirActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}

Potrebbero piacerti anche