“Año de la Inversión para el Desarrollo Rural y la Seguridad Alimentaria“
NOMBRES:
JOEL OMAR
APELLIDO:
BURGOS PALACIOS
CURSO:
PROGRAMACIÓN VISUAL II
DOCENTE:
Ing. MORE REAÑO
CICLO:
IV
TEMA:
ACTIVIDAD 4
Desarrolla la tarea en un documento, de preferencia en un archivo pdf.
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 actividad4;
//Aqui se importaran los paquetes necesarios para la clase:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.*;
//Creando clase base:
public class Actividad4 extends JFrame implements ActionListener{
//creando variable de la base:
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;
//método constructor:
public Actividad4(){
super("Ejemplo de JDialog by: Joel Omar Burgos Palacios");
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
escritorio =new JDesktopPane();
this.getContentPane().add(escritorio);
//Creación de la barra de menú
JMenuBar barramenu=new JMenuBar();
barramenu.setBackground(Color.BLACK);
JMenu menu1=new JMenu("Ejemplo_JDialog ( operaciones )");
JMenu menu2=new JMenu("Determinar");
//creando los item del menu
item1=new JMenuItem("Suma");
item1.addActionListener(this);
item2=new JMenuItem("Resta");
item2.addActionListener(this);
item3=new JMenuItem("Multiplicación");
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);
// Agregado los item para el menu
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);
//creando un menu dialog
Actividad4 menu=new Actividad4();
}
//==========================================================//======
==
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,"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,"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,"multiplicación");
dialog3.getContentPane().add(panel);
dialog3.setBounds(60,100, 300, 200);
dialog3.setVisible(true);
}
else if(e.getSource()==item4){
System.exit(0);
}
else if(e.getSource()==item5){
String texto = "-Programa:\n" +
"-Curso:\n" +
"Programacion Visual II.\n\n" +
"- Docente-Tutor:\n" +
"Ing. More Reaño.\n\n" +
"-Alumno:\n" +
"Burgos Palacios Joel Omar\n\n" +
"Cilo: IV\n\n";
JOptionPane.showMessageDialog(this, texto,
"Informacion", JOptionPane.INFORMATION_MESSAGE);
}
//***********************PARA LA 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);
}
}
//+*******************CRANDO 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){
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);
}
}
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 actividad4;
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 Arbol {
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
//Contruyendo 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);
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("Base de datosI.");
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");
DefaultMutableTreeNode VisualII=new DefaultMutableTreeNode("Programacion Visual
II");
DefaultMutableTreeNode Mate=new DefaultMutableTreeNode("Matematica Discreta C.");
DefaultMutableTreeNode Base=new DefaultMutableTreeNode("Base de DatosII");
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("arbol 'presentación' by: Burgos Palacios");
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);
}
}
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 actividad4;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.MaskFormatter;
public class datos extends JFrame implements ActionListener{
JFormattedTextField dni,fecha;
JLabel dnil,fechal,nombrel,apellidol,men;
JTextField nombre,apellido;
JButton ingresar,salir,cancelar;
public datos(){
super("Datos");
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);
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);
datos objformat=new datos();
//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("");
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);
}
return false;
}
//==============================================================
}
}