Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2011, 09:27
Avatar de juanito1712
juanito1712
 
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 12 años, 3 meses
Puntos: 66
Alguien dispuesto a revisar codigo?

Me compre un libro sobre java hace unos dias y desde entonces ando dándole fuerte a esto.

Acabo de crear mi primera aplicación de prueba y funcionar funciona, pero no si si lo he realizado correctamente.

Ya se que lo que pido es una faena relativamente pesada así que si nadie esta dispuesto a hacerlo es comprensible y tampoco voy a mosquearme.

Lo que decía, he creado mi primera aplicación, esta tiene 3 calses
  • main
  • pantalla
  • verclientes

lo que no se es si lo he realizado correctamente o si he cometido una aberración a la programación orientada a objetos, eso es basicamente lo que quiero que se mire y se proponga la solución correcta (No creo que lo haya hecho correcto al 100% ni mucho menos)

clase main
Código java:
Ver original
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5.  
  6. public class Main {
  7.     public static void main(String[] args)
  8.     {
  9.         Connection conn = null;  
  10.         Statement  st   = null;  
  11.         ResultSet  rst1 = null;
  12.         try {  
  13.             // Cargamos el controlador JDBC  
  14.              Class.forName("org.hsqldb.jdbcDriver");
  15.             conn = DriverManager.getConnection("jdbc:hsqldb:file:/usuarios");  
  16.             try {  
  17.                 st  = conn.createStatement();  
  18.                 rst1 = st.executeQuery("SELECT * FROM empleados");  
  19.                 System.out.println("las tablas ya estan creadas");
  20.                 st.close();  
  21.                 conn.close();
  22.                 Pantalla ventana;
  23.                 ventana= new Pantalla();
  24.                 ventana.setVisible(true);
  25.             } catch (Exception ex){  
  26.                 System.out.println(ex);
  27.                 //crear las tablas ya que no existen
  28.             }  
  29.         } catch (Exception ex){  
  30.             System.err.println("Se pa producido un error al cargar el controlador JDBC");  
  31.             return;  
  32.         }
  33.        
  34.     }
  35. }

clase pantalla
Código java:
Ver original
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.WindowAdapter;
  6. import java.awt.event.WindowEvent;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9.  
  10. import javax.swing.BorderFactory;
  11. import javax.swing.JButton;
  12. import javax.swing.JFrame;
  13. import javax.swing.JMenu;
  14. import javax.swing.JMenuBar;
  15. import javax.swing.JMenuItem;
  16. import javax.swing.JPanel;
  17.  
  18.  
  19. public class Pantalla extends JFrame
  20. {
  21.     JPanel marco;
  22.     public Pantalla()
  23.     {
  24.         setBounds(500,300,400,300);
  25.         setTitle("Facturas mini");
  26.         setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  27.         addWindowListener (new WindowAdapter()
  28.         {
  29.             public void windowClosing(WindowEvent arg0)
  30.             {
  31.                 System.exit(0);
  32.             }
  33.         }
  34.         );
  35.        
  36.         JMenuBar barraMenu;
  37.         barraMenu=new JMenuBar();
  38.         SeleccionarMenubar sm=new SeleccionarMenubar();
  39.        
  40.        
  41.         JMenu clientes;
  42.         JMenuItem nuevoCliente,buscarCliente;
  43.         clientes=new JMenu("Clientes");
  44.        
  45.         buscarCliente = new JMenuItem("Buscar cliente");
  46.         buscarCliente.addActionListener(sm);
  47.         buscarCliente.setActionCommand("buscarcliente");
  48.         clientes.add(buscarCliente);
  49.         nuevoCliente = new JMenuItem("Nuevo cliente");
  50.         clientes.add(nuevoCliente);
  51.         barraMenu.add(clientes);
  52.        
  53.         getContentPane().add(barraMenu,BorderLayout.NORTH);
  54.         marco = new JPanel();
  55.         marco.setBackground(Color.GREEN);
  56.         getContentPane().add(marco,BorderLayout.CENTER);
  57.        
  58.     }
  59.    
  60.     public class SeleccionarMenubar implements ActionListener
  61.     {
  62.         @Override
  63.         public void actionPerformed(ActionEvent e)
  64.         {
  65.             String comando;
  66.             comando=e.getActionCommand();
  67.             if (comando.equals("buscarcliente")){
  68.                 getContentPane().remove(marco);
  69.                 try {
  70.                     marco=new Verclientes();
  71.                 } catch (SQLException e1) {
  72.                    
  73.                     e1.printStackTrace();
  74.                 }
  75.                 getContentPane().add(marco,BorderLayout.CENTER);
  76.                 marco.updateUI();
  77.             }      
  78.         }
  79.     }  
  80. }

clase verclientes
Código java:
Ver original
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;
  6.  
  7.  
  8. import javax.swing.JPanel;
  9. import javax.swing.JTable;
  10. import javax.swing.table.DefaultTableModel;
  11.  
  12. public class Verclientes extends JPanel
  13. {
  14.     public Verclientes()throws SQLException
  15.     {
  16.         Connection conn2 = null;  
  17.         Statement  st2   = null;  
  18.         String     sql2  = null;
  19.         ResultSet  rst2 = null;
  20.        
  21.         try {  
  22.             // Cargamos el controlador JDBC  
  23.              Class.forName("org.hsqldb.jdbcDriver");  
  24.         } catch (Exception ex){  
  25.             System.err.println("Se pa producido un error al cargar el controlador JDBC");  
  26.             return;  
  27.         }  
  28.         conn2 = DriverManager.getConnection("jdbc:hsqldb:file:/usuarios");  
  29.         st2  = conn2.createStatement();  
  30.         rst2 = st2.executeQuery("SELECT * FROM empleados");  
  31.        
  32.        
  33.         DefaultTableModel modelo = new DefaultTableModel();
  34.         JTable tabla = new JTable(modelo);
  35.        
  36.        
  37.      // Creamos las columnas.
  38.         modelo.addColumn("id");
  39.         modelo.addColumn("nombre");
  40.         modelo.addColumn("nacimiento");
  41.  
  42.         // Bucle para cada resultado en la consulta
  43.         while (rst2.next())
  44.         {
  45.            // Se crea un array que será una de las filas de la tabla.
  46.            Object [] fila = new Object[3]; // Hay tres columnas en la tabla
  47.  
  48.            // Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
  49.            for (int i=0;i<3;i++)
  50.               fila[i] = rst2.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
  51.  
  52.            // Se añade al modelo la fila completa.
  53.            modelo.addRow(fila);
  54.         }
  55.         tabla = new JTable();
  56.         tabla.setModel(modelo);
  57.         add(tabla);
  58.         st2.close();  
  59.         conn2.close();
  60.        
  61.     }
  62. }