Post on 06-Apr-2018
8/3/2019 Tutorial Estructura de Datos
1/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
ESTRUCTURAS CONDICIONALES
EJEMPLO DE APLICACIN: Disee el siguiente formulario utilizando los controles
correspondientes.
SOLUCION:
Indicaciones:
Se solicita el ingreso del nombre del
producto, precio y cantidad.Muestre el producto, importe de
compra, descuento e importe final.
Importe Inicial Descuento
8/3/2019 Tutorial Estructura de Datos
2/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
ESTRUCTURAS CONDICIONALES: CONTROLES JRADIOBUTTON JCHECKBOX
JRADIOBUTTON (Botn de Opcin): Este control se utiliza cuando se debe escoger una sola
opcin de varias posibles.
Evento Principal: ActionPerformed, se ejecuta cuando se selecciona un determinado radio.
Mtodo Principal: isSelected, devuelve true si esta seleccionado, caso contrario devuelvefalse.
Nota: Para poder seleccionar slo uno de los radios, tienen que estar agrupados, entoncesdebemos utilizar el control ButtonGroup (Grupo de Botones).
JCHECKBOX (Casilla de Activacin): Este control permite activar varias alternativas de las
propuestas.
Evento Principal: ActionPerformed, se ejecuta cuando se activa una determinada casilla.
Mtodo Principal: isSelected, devuelve true si esta activado, caso contrario devuelvefalse.
EJEMPLO DE APLICACIN.
SOLUCION:
EJEMPLO DE APLICACIN (EVENTO ActionPerformed)
BOTON Calcularprivate void
btnCalcularActionPerformed(java.awt.event.ActionEvent evt) {
//Declarar variables segn el tipo de dato a almacenarString Pro=this.txtProd.getText();
double Pre=Double.parseDouble(this.txtPrecio.getText());
int Can=Integer.parseInt(this.txtCantidad.getText());
//Calcular el importe inicial de la venta
double ImpIni=Pre*Can;
//Calcular Descuento Segun Procedencia
double DctoProc;
if (this.rbnNacinal.isSelected()) {
DctoProc=ImpIni*0.10;
} else {
DctoProc=ImpIni*0.05;
}//Calcular Descuento Adicional
double DctoAdic;
if (this.ckbDctoAdic.isSelected()) {
DctoAdic=ImpIni*0.05;
} else {
DctoAdic=0.00;
}
//Calculamos el Total a Pagar
double TP=ImpIni-DctoProc-DctoAdic;
//Mostramos resulatados Obtenidos
this.lblProd.setText(Pro);
this.lblImportInic.setText(ImpIni+"");
this.lbldsctoxProc.setText(DctoProc+"");
this.lbldsctoAdic.setText(DctoAdic+"");
this.lblTotalPag.setText(TP+"");
BOTON Nuevo
//Asigna una cadena vaca a cada control
indicado
this.txtProd.setText("");
this.txtPrecio.setText("");
this.txtCantidad.setText("");
this.lblProd.setText("");
this.lblImportInic.setText("");
this.lbldsctoxProc.setText("");
this.lbldsctoAdic.setText("");
this.lblTotalPag.setText("");
//Ubica el cursor en la primera caja de texto
this.txtProd.requestFocus();
//Muestra seleccionado del Primer
Jradiobutton
this.rbnNacinal.setSelected(true);
//Desactivamos el jCheckbox
this.ckbDctoAdic.setSelected(false);
}
BOTON Cerrar
private void
BtnCerrarActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
8/3/2019 Tutorial Estructura de Datos
3/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
SOLUCION :
ESTRUCTURAS REPETITIVAS
Este tipo de estructuras consisten en ejecutar un bloque de cdigo un determinado nmero de veces, a cada una destas repeticiones se le denomina bucle o ciclo.
EJERCICIO PROPUESTO
JRADIOBUTTON maana
private void rbtMaanaActionPerformed
(java.awt.event.ActionEvent evt) {
String A=this.txtAlumno.getText();
this.lblCostMatric.setText("160");this.lblAlumno.setText(A);
}
JRADIOBUTTON Tarde
private void rbttardeActionPerformed
(java.awt.event.ActionEventevt)
{
String A=this.txtAlumno.getText();
this.lblCostMatric.setText("140");
this.lblAlumno.setText(A);}
JRADIOBUTTON Noche
private void rbttardeActionPerformed
(java.awt.event.ActionEventevt)
{
String A=this.txtAlumno.getText();
this.lblCostMatric.setText("120");this.lblAlumno.setText(A);
}
El evento actionperformed, se ejecuta cuando se
selecciona un determinado botn de opcin. En esta
aplicacin se ingresa el nombre del alumno y al
seleccionar el turno de estudios se muestra el
alumno registrado junto al pago por matricula segn
turno seleccionado.
8/3/2019 Tutorial Estructura de Datos
4/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
CONTADOR:Tiene la funcin de contar un determinado suceso en cada ciclo de la estructura. Generalmente, la
variable contador es de tipo entero, su valor inicial es 0 y su valor se incrementa en 1 por cada bucle que se
ejecuta.
ACUMULADOR: Tiene la funcin de sumar una determinada variable en cada ciclo de la estructura. Generalmente,
tiene valor inicial 0 y el tipo de dato depende de la variable a acumular.
ESTRUCTURA FOR: Sintaxis
for(int variable=valor inicial; valor final; incremento/decremento){//instruccin(es)
}
ESTRUCTURA WHILE: Sintaxis: ESTRUCTURA DO-WHILE: Sitaxis
While(condicin){ do{
//instruccin(es) //instruccin(es)
} }while(condicin);
EJEMPLO DE APLICACIN: Utilizando Estructura FORprivate void btnEvaluarActionPerformed(java.awt.event.ActionEvent evt) {
// Captura el nmero ingresado
int num=Integer.parseInt(this.txtNumero.getText());
int cd=0;//contador de divisores//Estructura repetiva for
for (int i = 1; i
8/3/2019 Tutorial Estructura de Datos
5/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
CONTROL JLISTSe utiliza para mostrar un listado de datos, permitiendo seleccionar uno o ms de los mismos para realizar algn tipo
de operacin.
Clase DefaultListModel: Esta clase se debe importar para crear una instancia (objeto) de la misma y luego asociarlo
al control jlist del formulario.
Importacin de la clase: import javax.swing.DefaultListModel;
Creacin de una Instancia: DefaultListModel obj=new DefaultListModel();Nota: La importacin de la clase se realiza despus del nombre del paquete. El objeto (obj) puede tener cualquier
nombre. Se debe crear una instancia por cada control jList utilizado en el formulario.
Principales Mtodos de una Instancia (objeto):
Contains: Verifica si un elemento se encuentra registrado en una determinada instancia
addElement: Adiciona un elemento a una instancia.
remove: Elimina un elemento de una instancia.
getElementAt: Captura el elemento de una instancia correspondiente al ndice seleccionado en una lista.
getSize: Captura la cantidad de elementos que contiene una instancia.
Principales Eventos y Mtodos del control jList:
Evento ValueChanged: Este evento se ejecuta cuando se selecciona un determinado elemento de una lista.
Mtodo getSelectedIndex: Captura el ndice correspondiente al elemento seleccionado en una lista.
Mtodo setModel: Asigna una instancia (objeto) a un control jList.
APLICACIN EJEMPLO:
Botn Cerrarprivate void
brnCerrarActionPerformed(java.awt.event.ActionEvent
evt) {
int rpta=JOptionPane.showConfirmDialog(this,"Estas
Seguro?","Salir",JOptionPane.YES_NO_OPTION);
if(rpta==0)
System.exit(0);
}
Boton Registrarprivate void btnRegistrarActionPerformed(java.awt.event.ActionEvent evt) {
//Captura nombre del curso digitado
String curso=this.txtCurso.getText();//Verifica campo de texto vacio
if (curso.equals("")) {
JOptionPane.showMessageDialog(this,"IngreseCurso",
"Atencin!!!",JOptionPane.INFORMATION_MESSAGE);
this.txtCurso.requestFocus();
} else {
if (this.objCursos.contains(curso)) {
JOptionPane.showMessageDialog(this,curso.toUpperCase()+" ya se encuentra
registrado","Atencin!!!",JOptionPane.INFORMATION_MESSAGE);
this.txtCurso.setText("");
this.txtCurso.requestFocus();
} else {//Agrega dato al objeto creado
this.objCursos.addElement(curso);
//Asigna el objeto al control jlist
this.lstCursos.setModel(objCursos);
//Captura el tamao del objeto(cantidad de elementos)
int cant=this.objCursos.getSize();
//Muestra cantidad en la etiqueta
this.lblTotal.setText(cant+"");
//Limpia y ubica el cursor en la caja de texto
this.txtCurso.setText("");
this.txtCurso.requestFocus();
}}
}
Siga las instrucciones del docente para importar las
libreras y clases correspondientes, as como para
crear la instancia a utilizar en este formulario.
El control jList tiene asignado por defecto
Items del 1 al 5, hay que eliminar stos tems
antes de codificar. Ubique la propiedad
model y suprima el listado de tems.
8/3/2019 Tutorial Estructura de Datos
6/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
APLICACIN PROPUESTA I APLICACIN PROPUESTA II
Botn Eliminarprivate void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) {
//Captura tamao del modelo
int cant=this.objCursos.getSize();
//Captura ndice del elemento seleccionado
int i=this.lstCursos.getSelectedIndex();
//Verifica si la lista esta vaciaif (cant==0) {
JOptionPane.showMessageDialog(this,"No Existen Elementos","Atencin!!!",JOptionPane.INFORMATION_MESSAGE);
this.txtCurso.requestFocus();
} else {
if (i
8/3/2019 Tutorial Estructura de Datos
7/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
ARREGLOS UNIDIMENSIONALES METODOS DE ORDENAMIENTO
Un arreglo es una estructura que tiene la caracterstica de almacenar un conjunto de datos del mismo tipo.
A los datos almacenados en un arreglo se puede acceder haciendo uso del ndice o posicin (valor entero que
inicia en 0 y termina en una unidad menor al tamao del arreglo).
El tamao de un arreglo indica la cantidad de elementos que contiene el arreglo. Utilice el mtodo length.
Declaracin de un Arreglo:
TipoDato NombreArreglo[]=new TipoDato[Tamao]APLICACIN EJEMPLO 1
Objetos utilizados:DefaultListModel objLista1=new DefaultListModel();DefaultListModel objLista2=new DefaultListModel();
Este mtodo consiste en acomodar el arreglo
moviendo el mayor hasta la ltima posicin
comenzando desde la posicin cero del
arreglo hasta haber acomodado el nmero
ms grande en la ltima posicin, una vez
acomodado el ms grande, prosigue a
encontrar y acomodar el siguiente ms
grande comparando de nuevo los nmeros
desde el inicio del arreglo, y as sigue hasta
ordenar todo los elementos del arreglo.
private void
btnAgregarActionPerformed(java.awt.event.ActionEvent evt)
{ double num=Double.parseDouble(this.txtNum.getText());
this.objLista1.addElement(num);
this.lstLista1.setModel(objLista1);
this.txtNum.setText("");
this.txtNum.requestFocus(); }ORDEN ASCENDENTE
private void rbtAscActionPerformed(java.awt.event.ActionEvent
evt) {
this.objLista2.clear();//Limpia el control lstLista2
int cant=this.objLista1.getSize();
//Declaramos arreglo de "cant" elementos
double A[]=new double[cant];
//Agrega al arreglo cada elemento del objeto objLista1
for (int i = 0; i < A.length; i++) {
A[i]=Double.parseDouble(this.objLista1.getElementAt(i).toString());}
//Declara variable auxiliar
double aux;
//Utilizamos mtodo de ordenamiento Burbuja
for (int i = 0; i < A.length; i++) {
for (int j = i+1; j < A.length; j++) {
if(A[i]>A[j]){
aux=A[i];
A[i]=A[j];
A[j]=aux; } } }
//Agrega los elementos ordenados al objeto objLista2
for (int i = 0; i < A.length; i++) {this.objLista2.addElement(A[i]); }
this.lstLista2.setModel(objLista2); }
ORDEN DESCENDENTE
private void
rbtDescActionPerformed(java.awt.event.ActionEven
t evt) {
this.objLista2.clear();//Limpia el control lstLista2int cant=this.objLista1.getSize();
//Declaramos arreglo de "cant" elementos
double A[]=new double[cant];
//Agrega al arreglo cada elemento del objeto objLista1
for (int i = 0; i < A.length; i++) {
A[i]=Double.parseDouble(this.objLista1.getElement
At(i).toString());}
//Declara variable auxiliar
double aux;
//Utilizamos mtodo de ordenamiento Burbuja
for (int i = 0; i < A.length; i++) {for (int j = i+1; j < A.length; j++) {
if(A[i]>A[j]){
aux=A[i];
A[i]=A[j];
A[j]=aux; } } }
//Agrega los elementos ordenados al objeto objLista2
for (int i = 0; i < A.length; i++) {
this.objLista2.addElement(A[i]); }
this.lstLista2.setModel(objLista2); }
8/3/2019 Tutorial Estructura de Datos
8/8
EDGAR M. JAMANCA ANTONIO ING. QUIMICA Estructura de Datos
APLICACIN EJEMPLO 2Objetos utilizados:
DefaultListModel objnom=new DefaultListModel();
DefaultListModel objaux=new DefaultListModel();
BOTON AGREGAR:
private void jButton1ActionPerformed(java.awt.event.ActionEvent
evt) {
String nombre=this.jTextField1.getText();
if (nombre.equals("")) {
JOptionPane.showMessageDialog(this,"Digite Nombre",
"Atencion",JOptionPane.INFORMATION_MESSAGE);
this.jTextField1.requestFocus();
} else {
if (this.objnom.contains(nombre)) {
JOptionPane.showMessageDialog(this,"Nombre se encuentra
registrado","Atencion", JOptionPane.INFORMATION_MESSAGE);
this.jTextField1.setText("");this.jTextField1.requestFocus();
} else {
this.objnom.addElement(nombre);
this.jList1.setModel(objnom);this.jLabel3.setText(this.objnom.getSize()+"");
this.jTextField1.setText("");
this.jTextField1.requestFocus();} } }
BOTON QUITAR
private void jButton2ActionPerformed(java.awt.event.ActionEvent
evt) {
int i=this.jList1.getSelectedIndex();
int cant=this.objnom.getSize();
if (cant==0) {
JOptionPane.showMessageDialog(this,"Registro en
Blanco","Atencion",JOptionPane.INFORMATION_MESSAGE);
this.jTextField1.requestFocus();
} else {
if (i