AGENDA EN JAVA

Como a mi esto de la programación me gusta mucho, me he pasado del visual basic a un lenguaje de programación nuevo, el JAVA, que es (para mi modesto entendimiento), muy parecido a PHP, os dejo a continuación la primera parte del codigo de una agenda telefonica en JAVA, primero las imagenes:


La imagen de l a version es la primera ventana que te aparece al abrir el programa, con el titulo, el autor y la version; al pinchar en Archivo se despliega y aparecen tres opciones : Nuevo, Abrir y salir, al princhar en Nuevo se abre la siguiente ventana donde editaremos el nuevo contacto telefonico, a continuación el codigo que llevo escrito hasta ahora:

CODIGO

package agenda;


//importacion de las herramientas que necesitaremos para compilar el programa

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

import java.sql.*;

import java.io.*;

import java.util.*;


public class Agenda extends JFrame implements ActionListener{

//Variables de Swing(ver el programa swing para preguntas)

private JMenuBar barra;

private JMenu menu1;

private JMenuItem mi1, mi2, mi3;

private JTextField camponuevonombre, camponuevotelefono, campobuscarnombre;

private JLabel etiquetanuevonombre, etiquetanuevotelefono,imprimenombre, imprimetelefono,nombreprograma, nombreautor, numeroversion, dibusca;

private JButton boton, botonnuevo, botonbusca;



//Resto de variables para exportar datos de la base de datos



File archivo = new File("C://prueba/archivo.txt");//haced una carpeta en C que se llama prueba

Formatter nuevoarchivo;

Scanner x;



public Agenda(){

setLayout(null);

//Textos de introduccion

nombreprograma =new JLabel("Agenda Telefonica en Java");

nombreprograma.setBounds(10,0,180,30);

add(nombreprograma);

nombreautor =new JLabel("AQUI VUESTRO NOMBRE");

nombreautor.setBounds(25,30,180,30);

add(nombreautor);

numeroversion = new JLabel("Version 1.0");

numeroversion.setBounds(45,60,180,30);

add(numeroversion);



//Menu Superior de la Agenda

barra = new JMenuBar();

setJMenuBar(barra);

menu1 = new JMenu("Archivo");

barra.add(menu1);



mi1 = new JMenuItem("Nuevo");

mi1.addActionListener(this);

menu1.add(mi1);



mi2 = new JMenuItem("Buscar");

mi2.addActionListener(this);

menu1.add(mi2);



mi3 = new JMenuItem("Salir");

mi3.addActionListener(this);

menu1.add(mi3);

}

@Override

public void actionPerformed(ActionEvent e){

Container f = this.getContentPane();

if(e.getSource()==mi1){

//ocultar los elementos que ya estan en el formulario

nombreprograma.setVisible(false);

nombreautor.setVisible(false);

numeroversion.setVisible(false);

////////////////////////crear nuevo formulario con todos los campos necesarios para la base de datos

camponuevonombre = new JTextField();

camponuevonombre.setBounds(140,20,150,30);

add(camponuevonombre);

camponuevonombre.setVisible(true);



etiquetanuevonombre = new JLabel("Nuevo nombre");

etiquetanuevonombre.setBounds(20,20,90,30);

add(etiquetanuevonombre);

etiquetanuevonombre.setVisible(true);



etiquetanuevotelefono = new JLabel("Nuevo telefono");

etiquetanuevotelefono.setBounds(20,50,120,30);

add(etiquetanuevotelefono);

etiquetanuevotelefono.setVisible(true);



camponuevotelefono= new JTextField();

camponuevotelefono.setBounds(140,50,150,30);

add(camponuevotelefono);

camponuevotelefono.setVisible(true);



botonnuevo = new JButton("Crear");

botonnuevo.setBounds(180,80,100,30);

add(botonnuevo);

botonnuevo.addActionListener(this);

botonnuevo.setVisible(true);



}//hasta aqui todos los campos del formulario NUEVO ojo con la programacion que te equivocas

if(e.getSource()==mi2){

nombreprograma.setVisible(false);

nombreautor.setVisible(false);

numeroversion.setVisible(false);

etiquetanuevonombre.setVisible(false);

etiquetanuevotelefono.setVisible(false);

camponuevonombre.setVisible(false);

camponuevotelefono.setVisible(false);

botonnuevo.setVisible(false);



//desde aqui vamos a hacer el formulario de buscar contacto



campobuscarnombre = new JTextField();

campobuscarnombre.setBounds(140,20,150,30);

add(campobuscarnombre);

campobuscarnombre.setVisible(true);



imprimenombre = new JLabel("Buscar por nombre");

imprimenombre.setBounds(20,20,250,30);

add(imprimenombre);

imprimenombre.setVisible(true);



botonbusca = new JButton("Buscar");

botonbusca.setBounds(140,50,120,30);

add(botonbusca);

botonbusca.addActionListener(this);

botonbusca.setVisible(true);



//hasta aqui el formulario de buscar (todo bien ordenadito y veras la diferencias)



}

if(e.getSource()==mi3){

System.exit(0);//esto es end en visual basic

}

if(e.getSource()==botonnuevo){

try{

//necesitareis una base de datos en mysql que se llame agenda con dos campos

//el campo nombre y el campo telefono, para que la agenda introduzca los datos

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/agenda","root","");

//esta cadena de conexion tendreis que cambiarla para que os funcione

//si no os conecta preguntadme por medio de los comentarios.

Statement estado = con.createStatement();

estado.executeUpdate("INSERT INTO agenda VALUES ('"+camponuevonombre.getText()+"','"+camponuevotelefono.getText()+"')");

}catch(SQLException ex){

System.out.println("Error de MYSQL");

}catch(Exception err){

System.out.println("He encontrado un error que es: "+err.getMessage());

}

}

if(e.getSource()==botonbusca){

//ME CONECTO A LA BASE DE DATOS

try{

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/agenda","root","");

Statement estado = con.createStatement();

ResultSet resultado = estado.executeQuery("SELECT * FROM agenda WHERE nombre = '"+campobuscarnombre.getText()+"'");

//EXPORTAR EL RESULTADO A UN ARCHIVO

while(resultado.next()){

if(archivo.exists()){

if(archivo.canWrite()){

nuevoarchivo = new Formatter("C://prueba/archivo.txt");

nuevoarchivo.format("%s %s %s", resultado.getString("nombre"),resultado.getString("telefono"),"telefono");

nuevoarchivo.close();

}else{

System.out.println("El archivo existe pero no puedo escribir en él");

}

}else{

try{

nuevoarchivo = new Formatter("C://prueba/archivo.txt");

nuevoarchivo.format("%s %s %s", resultado.getString("nombre"),resultado.getString("telefono"),"telefono");

nuevoarchivo.close();

}catch(Exception errr){

System.out.println("Error de tipo: "+errr);

}

}

}

}catch(SQLException ex){

System.out.println("Error en buscar de MYSQL");

}catch(Exception err){

System.out.println("He encontrado un error en buscar que es: "+err.getMessage());
      }
    }
}
public static void main(String[] args) {
Agenda ventana = new Agenda();
         ventana.setBounds(10,20,400,200);
         ventana.setVisible(true);
         ventana.setBackground(Color.GREEN);
    }
}

vigilando el copy/paste y haciendo la base de datos bien hecha, y la carpeta en c llamada prueba, esta agenda telefonica rudimentaria funciona.

No hay comentarios: