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:
Publicar un comentario