Download tutorial_1 - WordPress.com

Document related concepts
no text concepts found
Transcript
Programación en Java
Programación visual II.
Tarea N° 4
Uladech
Universidad Católica los Ángeles de Chimbote
Facultad de Ingeniería de Sistemas
Departamento Académico de Ingeniería de Sistemas
Materia:
Programación Visual II
Nombre del Profesor:
Nombre del estudiante:
Grupo: A
Ing. Aldo Segismundo Pereda Castillo
Alex Ancajima Castro
No. Código Universitario: 1209110060
Tema del trabajo: Ejercicios de Aplicación.
Piura, Junio, 2012
Programación Visual II
Uladech
Desarrollar:
1. En base a lo desarrollado en la pregunta 2 de la tarea anterior (Tarea 3), en
lugar de usar objetos JInternalFrame, usar objetos JDialog.
package ejemplos_visualii;
//IMPORTTAR LOS PAQUETES NECESARIOS:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.*;
//CLASE BASE:
public class MenuJDialog extends JFrame implements ActionListener{
//CREAR VARIABLES MIEMBROS DE LA CLASE, LA CUAL SE
//UTILIZARAN EN ESTA:
private JLabel label1,label2,lblm;
private JButton boton1, boton2,boton3;
private JDesktopPane escritorio;
private JTextField cuadro1,cuadro2;
private JDialog dialog1, dialog2,dialog3;
private JMenuItem item1,item2,item3,item4,item5;
//METODO CONSRTRCUTOR EL CUAL CREA EL MENU:
public MenuJDialog(){
super("Ejemplo de JDialog");
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
escritorio =new JDesktopPane();
this.getContentPane().add(escritorio);
//CREACION DE LA BARRA DE MENU: LA CUAL CONTENDRÁ LOS
//MENUS;
JMenuBar barramenu=new JMenuBar();
barramenu.setBackground(Color.BLACK);
JMenu menu1=new JMenu("Ejemplo_JDialog");
JMenu menu2=new JMenu("Operacion");
//CREANDO LOS ITEM DE LOS MENUS:
item1=new JMenuItem("JDialog1");
item1.addActionListener(this);
item2=new JMenuItem("JDialog2");
item2.addActionListener(this);
item3=new JMenuItem("JDialog3");
item3.addActionListener(this);
item4=new JMenuItem("salir");
item4.addActionListener(this);
item5=new JMenuItem("Acerca de..");
item5.addActionListener(this);
menu1.setForeground(Color.WHITE);
menu2.setForeground(Color.WHITE);
// AGREGANDO LOS ITEMS AL MENU Y LUEGO LOS MENUS A LA
//BARRA:
Programación Visual II
Uladech
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu2.add(item4);
menu2.add(item5);
barramenu.add(menu1);
barramenu.add(menu2);
this.setJMenuBar(barramenu);
//***********************************************************
this.setVisible(true);
}
//==========================================================
//=====
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
//CREAR UN OBJETO DE LA CLASE ManuJDialog;
MenuJDialog menu=new MenuJDialog();
}
//==========================================================
//========
public void actionPerformed(ActionEvent e){
int a = 0,b = 0,r;
JPanel panel=new JPanel();
if(e.getSource()==item1){
contenido1(panel);
dialog1 =new JDialog(this,"Ejemplo de una suma");
dialog1.getContentPane().add(panel);
dialog1.setBounds(60,100, 300, 200);
dialog1.setVisible(true);
}
else if (e.getSource() == item2) {
contenido2(panel);
dialog2 =new JDialog(this,"Ejemplo de una resta");
dialog2.getContentPane().add(panel);
dialog2.setBounds(60,100, 300, 200);
dialog2.setVisible(true);
}
else if (e.getSource() == item3) {
contenido3(panel);
dialog3 =new JDialog(this,"Ejemplo de una multiplicación");
dialog3.getContentPane().add(panel);
dialog3.setBounds(60,100, 300, 200);
dialog3.setVisible(true);
}
else if(e.getSource()==item4){
System.exit(0);
}
Programación Visual II
Uladech
else if(e.getSource()==item5){
String texto = "-Programa:\n" +
"Ejemplos de JDialog.\n\n" +
"-Asignatura:\n" +
"Laboratorio II.\n" +
"Programacion Visual II.\n\n" +
"-Tutor:\n" +
"Ing. Aldo S. Pereda C.\n\n" +
"-Alumno:\n" +
"Ancajima Castro Alex.\n\n" +
"Semestre: IV\n\n";
JOptionPane.showMessageDialog(this, texto,
"Informacion", JOptionPane.INFORMATION_MESSAGE);
}
//***********************SELECCION DE
//BOTONES**********************************
try{
if(e.getSource()==boton1)
{
a=Integer.parseInt(cuadro1.getText());
b=Integer.parseInt(cuadro2.getText());
r=a+b;
lblm.setText(String.valueOf(r));
lblm.setForeground(Color.BLUE);
}
else if(e.getSource() == boton2)
{
a=Integer.parseInt(cuadro1.getText());
b=Integer.parseInt(cuadro2.getText());
r=a-b;
lblm.setText(String.valueOf(r));
lblm.setForeground(Color.BLUE);
}
else if(e.getSource() == boton3)
{
a=Integer.parseInt(cuadro1.getText());
b=Integer.parseInt(cuadro2.getText());
r=a*b;
lblm.setText(String.valueOf(r));
lblm.setForeground(Color.BLUE);
}
}
catch(Exception er){
JOptionPane.showMessageDialog(this,"los datos no son los
correctos.\n"
+ "O le faltan datos\n"
+ "Por favor VERIFIQUE!","Mensaje de
error!",JOptionPane.ERROR_MESSAGE);
}
Programación Visual II
Uladech
}
//+*******************CREANDO EL CONTENIDO DE LOS
//JDIALOG*****************
//-PARA CADA UNO DE LOS JDIALOG:
public void contenido1(JPanel panel){
panel.setLayout(new FlowLayout());
label1 =new JLabel("Ingrese el
1°Numero",SwingConstants.CENTER);
panel.add(label1);
cuadro1 =new JTextField(10);
panel.add(cuadro1);
label2 =new JLabel("Ingrese el
2°Numero",SwingConstants.CENTER);
panel.add(label2);
cuadro2 =new JTextField(10);
panel.add(cuadro2);
boton1 =new JButton("Calcular");
boton1.addActionListener(this);
panel.add(boton1);
lblm =new JLabel("Aqui se ovserbará la
respuesta",SwingConstants.CENTER);
lblm.setForeground(Color.ORANGE);
panel.add(lblm);
panel.setBounds(30,30,45,30);
}
public void contenido2(JPanel panel){
panel.setLayout(new FlowLayout());
label1 =new JLabel("Ingrese el
1°Numero",SwingConstants.CENTER);
panel.add(label1);
cuadro1 =new JTextField(10);
panel.add(cuadro1);
label2 =new JLabel("Ingrese el
2°Numero",SwingConstants.CENTER);
panel.add(label2);
cuadro2 =new JTextField(10);
panel.add(cuadro2);
boton2 =new JButton("Calcular");
boton2.addActionListener(this);
panel.add(boton2);
lblm =new JLabel("Aqui se ovserbará la
respuesta",SwingConstants.CENTER);
lblm.setForeground(Color.darkGray);
panel.add(lblm);
panel.setBounds(30,30,45,30);
}
public void contenido3(JPanel panel){
Programación Visual II
Uladech
panel.setLayout(new FlowLayout());
label1 =new JLabel("Ingrese el
1°Numero",SwingConstants.CENTER);
panel.add(label1);
cuadro1 =new JTextField(10);
panel.add(cuadro1);
label2 =new JLabel("Ingrese el
2°Numero",SwingConstants.CENTER);
panel.add(label2);
cuadro2 =new JTextField(10);
panel.add(cuadro2);
boton3 =new JButton("Calcular");
boton3.addActionListener(this);
panel.add(boton3);
lblm =new JLabel("Aqui se ovserbará la
respuesta",SwingConstants.CENTER);
lblm.setForeground(Color.GREEN);
panel.add(lblm);
panel.setBounds(30,30,45,30);
}
}
Programación Visual II
Uladech
2. Construye un arbol, usando Jtree, indicando en el nodo principal Ingeniería
de Sistemas. Dentro de éste nodo crear nodos hijos de aquellos ciclos que
estés llevando cursos. Finalmente de últimos nodos hijos crear en cada uno
nodos indicando el nombre del curso que estas llevando actualmente.
package ejemplos_visualii;
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class JTree_Sistemas {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
//CONTRUCCION DE UN ARBOL:
DefaultMutableTreeNode sistemas=new
DefaultMutableTreeNode("Ing.Sistemas");
//DefaulttreeModel: contiene los datos del arbol
//en este caso, modelo va a contener los datos del arbol creado
DefaultTreeModel modelo=new DefaultTreeModel(sistemas);
//creamos un arbol, la cual enviamos como parametro el modelo("DATOS"):
JTree arbol=new JTree(modelo);
//CONSTRUCION DE LOS DATOS DEL ARBOL:
DefaultMutableTreeNode cicloI=new DefaultMutableTreeNode("cicloI");
DefaultMutableTreeNode cicloII=new DefaultMutableTreeNode("cicloII");
DefaultMutableTreeNode cicloIII=new DefaultMutableTreeNode("cicloIII");
DefaultMutableTreeNode cicloIV=new DefaultMutableTreeNode("cicloIV");
modelo.insertNodeInto( cicloI,sistemas,0);
modelo.insertNodeInto(cicloII,sistemas, 1);
modelo.insertNodeInto(cicloIII,sistemas, 2);
modelo.insertNodeInto(cicloIV,sistemas, 3);
//PRIMER CICLO
DefaultMutableTreeNode Introduccion=new
DefaultMutableTreeNode("Introduccion a la Ing.");
DefaultMutableTreeNode Algoritmos=new
DefaultMutableTreeNode("Algoritmos");
DefaultMutableTreeNode Matematica=new
DefaultMutableTreeNode("Matematica");
DefaultMutableTreeNode Calculo=new DefaultMutableTreeNode("Calculo
Diferencial");
DefaultMutableTreeNode Comuni=new
DefaultMutableTreeNode("Comunicacion");
DefaultMutableTreeNode MedioA=new DefaultMutableTreeNode("Medio
Ambiente");
DefaultMutableTreeNode Derechos=new DefaultMutableTreeNode("Derechos
Humanos");
modelo.insertNodeInto(Introduccion, cicloI,0);
modelo.insertNodeInto(Algoritmos, cicloI, 1);
Programación Visual II
Uladech
modelo.insertNodeInto(Matematica, cicloI, 2);
modelo.insertNodeInto(Calculo, cicloI, 3);
modelo.insertNodeInto(Comuni, cicloI, 4);
modelo.insertNodeInto(MedioA, cicloI, 5);
modelo.insertNodeInto(Derechos, cicloI, 6);
//SEGUNDO CICLO:
DefaultMutableTreeNode Desa=new DefaultMutableTreeNode("Desarrollo de
Aplicaciones M.");
DefaultMutableTreeNode Tecnica=new DefaultMutableTreeNode("Tecnicas de
Programacion");
DefaultMutableTreeNode Fisica=new DefaultMutableTreeNode("Fisica I");
DefaultMutableTreeNode Deonto=new
DefaultMutableTreeNode("Deontologia");
DefaultMutableTreeNode Estadis=new DefaultMutableTreeNode("Estadistica");
DefaultMutableTreeNode Practicas=new DefaultMutableTreeNode("Practicas
Operativas Justas");
DefaultMutableTreeNode Vida=new DefaultMutableTreeNode("Vida Espiritual");
modelo.insertNodeInto(Desa, cicloII,0);
modelo.insertNodeInto(Tecnica, cicloII, 1);
modelo.insertNodeInto(Deonto, cicloII, 2);
modelo.insertNodeInto(Estadis, cicloII, 3);
modelo.insertNodeInto(Practicas, cicloII, 4);
modelo.insertNodeInto(Vida, cicloII, 5);
modelo.insertNodeInto(Fisica, cicloII, 6);
//TERCE CICLO:
DefaultMutableTreeNode Logica=new DefaultMutableTreeNode("logica
Digital.");
DefaultMutableTreeNode Conta=new DefaultMutableTreeNode("Contabilidad");
DefaultMutableTreeNode VisualI=new DefaultMutableTreeNode("Programacion
Visual II");
DefaultMutableTreeNode Lenguaje=new DefaultMutableTreeNode("Lenguaje
Estructurado de Consulta");
DefaultMutableTreeNode Estructura=new DefaultMutableTreeNode("Estructura
de Datos");
DefaultMutableTreeNode FisicaII=new DefaultMutableTreeNode("Fisica II");
DefaultMutableTreeNode Asuntos=new DefaultMutableTreeNode("Asuntos
Consumidores");
modelo.insertNodeInto(Logica, cicloIII,0);
modelo.insertNodeInto(Conta, cicloIII, 1);
modelo.insertNodeInto(VisualI, cicloIII, 2);
modelo.insertNodeInto(Lenguaje, cicloIII, 3);
modelo.insertNodeInto(Estructura, cicloIII, 4);
modelo.insertNodeInto(FisicaII, cicloIII, 5);
modelo.insertNodeInto(Asuntos, cicloIII, 6);
//CUARTO CICLO:
DefaultMutableTreeNode Admi=new DefaultMutableTreeNode("Administracion
de Empresas");
DefaultMutableTreeNode Costos=new DefaultMutableTreeNode("Costos y
Presupuestos");
Programación Visual II
Uladech
DefaultMutableTreeNode VisualII=new
DefaultMutableTreeNode("Programacion Visual II");
DefaultMutableTreeNode Mate=new DefaultMutableTreeNode("Matematica
Discreta C.");
DefaultMutableTreeNode Base=new DefaultMutableTreeNode("Base de
Datos");
DefaultMutableTreeNode Gobernanzas=new
DefaultMutableTreeNode("Gobernanzas de las Organizaciones");
modelo.insertNodeInto(Admi, cicloIV,0);
modelo.insertNodeInto(Costos, cicloIV, 1);
modelo.insertNodeInto(VisualII, cicloIV, 2);
modelo.insertNodeInto(Mate, cicloIV, 3);
modelo.insertNodeInto(Base, cicloIV, 4);
modelo.insertNodeInto(Gobernanzas, cicloIV, 5);
//CONSTRUCCION Y VISUALICION DE LA VENTANA:
JFrame v=new JFrame("Presentacion de cursos mediante un arbol");
v.setSize(400,700);
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPane scroll=new JScrollPane(arbol);
v.add(scroll);
JButton b=new JButton("hola");
v.getContentPane().add(scroll);
v.setVisible(true);
}
}
Programación Visual II
Uladech
3.
Construye una aplicación que hagas uso de JFormattedTextField y a partir
de una instigación tuya validar cuadros de textos que muestre los datos en
mayúsculas y algún dato que indique fecha. Puedes hacer uso de datos
numéricos en los cuadros de textos.
package ejemplos_visualii;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.MaskFormatter;
public class Ejemplo2_JFormattedTextField extends JFrame implements ActionListener{
JFormattedTextField dni,fecha;
JLabel dnil,fechal,nombrel,apellidol,men;
JTextField nombre,apellido;
JButton ingresar,salir,cancelar;
public Ejemplo2_JFormattedTextField(){
super("EJEMPLO DE JFORMATTEDTEXTFIELD");
this.setSize(200,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel=new JPanel();
try{
//indicamos en el formato del DNI, que aparte del numero,
//se tiene que escribir una letra como identificacion
//la cual sera transformada en mayuscula:
MaskFormatter formatdni=new MaskFormatter("########-U");
MaskFormatter formatfecha=new MaskFormatter("##/##/####");
//===================================================
nombrel =new JLabel("Nombre",SwingConstants.CENTER);
panel.add(nombrel);
nombre =new JTextField(10);
panel.add(nombre);
apellidol =new JLabel("Apellidos", SwingConstants.CENTER);
panel.add(apellidol);
apellido =new JTextField(10);
panel.add(apellido);
dnil =new JLabel("DNI",SwingConstants.CENTER);
panel.add(dnil);
dni =new JFormattedTextField(formatdni);
panel.add(dni);
//enviando formato a travez de un label: como
//ejemplo:
JLabel forn=new JLabel("Formato: Num / Cantidad=8",SwingConstants.CENTER);
panel.add(forn);
fechal =new JLabel("-----------Fecha-------:",SwingConstants.CENTER);
panel.add(fechal);
fecha =new JFormattedTextField(formatfecha);
fecha.setValue("00/00/0000");
JSeparator separador=new JSeparator();
separador.setBackground(Color.red);
Programación Visual II
Uladech
panel.add(fecha);
JLabel forf=new JLabel("Formato:dd/mm/yyyy",SwingConstants.CENTER);
panel.add(forf);
panel.add(separador);
ingresar =new JButton("Verificar");
ingresar.addActionListener(this);
panel.add(ingresar);
salir =new JButton("Salir");
salir.addActionListener(this);
panel.add(salir);
cancelar =new JButton("Cancelar");
cancelar.addActionListener(this);
panel.add(cancelar);
men =new JLabel("--------mensaje------");
panel.add(men);
//================================================================================
=====
}
catch(Exception e){
System.out.println("Error!"+e.getMessage());
}
//================================================================================
==
this.add(panel);
this.setVisible(true);
}
//METODO PRIMCIPAL
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
Ejemplo2_JFormattedTextField objformat=new Ejemplo2_JFormattedTextField();
//validardni vf=new validardni();
}
//================================================================================
public void actionPerformed(ActionEvent e){
if(e.getSource()==ingresar){
try{
validardni vf=new validardni();
if(vf.verify(dni)==false){
men.setText("Los datos son correctos");
men.setForeground(Color.BLUE);
}
else{
men.setText("Los datos no son correctos");
men.setForeground(Color.red);}
}
catch(Exception err){}
}
else if(e.getSource()==cancelar){
nombre.setText("");
Programación Visual II
Uladech
apellido.setText("");
dni.setText("");
fecha.setText("");
men.setText("Los datos se han limpiado");
men.setForeground(Color.GREEN);
}
else if(e.getSource()==salir){
dispose();
}
}
//====================================================================
static class validardni extends InputVerifier{
String pattern = "RWAGMYFPDXBNJZSQVHLCKET";
/**
* Verifica un DNI.
*/
private boolean verifyDNI(String dni) {
// Eliminamos caracteres de separación.
dni = dni.replaceAll("[.-]", "");
if (dni.length() != 9) {
return false;
}
// El último carácter debe ser una letra
// if (!Character.isLetter(dni.charAt(8))) {
// return false;
//}
int digits;
try {
digits = Integer.parseInt(dni.substring(0, 8));
} catch (NumberFormatException e) {
return false;
}
// El algoritmo mágico
int pos = (digits%23);
if (pos == 0) {
pos = pattern.length();
}
pos = pos -1; // Las tiras en Java están basadas en cero!
return (pattern.charAt(pos) == dni.charAt(8));
}
/**
* Sobrescribimos el método del padre para realizar la
* comprobación del DNI entrado.
*/
public boolean verify(JComponent input) {
if (input instanceof JFormattedTextField) {
Object o = ((JFormattedTextField)input).getValue();
if (o == null) return true;
String value = o.toString();
return verifyDNI(value);
}
Programación Visual II
Uladech
return false;
}
//==============================================================
}
}
Este programa verifica si el DNI ingresado tiene el formato correcto, si no lo tiene muestra un
mensaje “los datos no son los correctos”, el formato correcto es el numero de DNI completo mas
una letra, la cual esta separada por un guion y convertida en mayúscula.
Programación Visual II