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 originalimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main
(String[] args
) {
try {
// Cargamos el controlador JDBC
Class.forName("org.hsqldb.jdbcDriver");
conn
= DriverManager.
getConnection("jdbc:hsqldb:file:/usuarios"); try {
st = conn.createStatement();
rst1 = st.executeQuery("SELECT * FROM empleados");
System.
out.
println("las tablas ya estan creadas"); st.close();
conn.close();
Pantalla ventana;
ventana= new Pantalla();
ventana.setVisible(true);
//crear las tablas ya que no existen
}
System.
err.
println("Se pa producido un error al cargar el controlador JDBC"); return;
}
}
}
clase pantalla
Código java:
Ver originalimport java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Pantalla
extends JFrame {
public Pantalla()
{
setBounds(500,300,400,300);
setTitle("Facturas mini");
setDefaultCloseOperation
(JFrame.
DO_NOTHING_ON_CLOSE); {
{
}
}
);
SeleccionarMenubar sm=new SeleccionarMenubar();
clientes
=new JMenu("Clientes");
buscarCliente
= new JMenuItem("Buscar cliente"); buscarCliente.addActionListener(sm);
buscarCliente.setActionCommand("buscarcliente");
clientes.add(buscarCliente);
nuevoCliente
= new JMenuItem("Nuevo cliente"); clientes.add(nuevoCliente);
barraMenu.add(clientes);
marco.
setBackground(Color.
GREEN);
}
{
@Override
{
comando=e.getActionCommand();
if (comando.equals("buscarcliente")){
getContentPane().remove(marco);
try {
marco=new Verclientes();
e1.printStackTrace();
}
marco.updateUI();
}
}
}
}
clase verclientes
Código java:
Ver originalimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Verclientes
extends JPanel {
{
try {
// Cargamos el controlador JDBC
Class.forName("org.hsqldb.jdbcDriver");
System.
err.
println("Se pa producido un error al cargar el controlador JDBC"); return;
}
conn2
= DriverManager.
getConnection("jdbc:hsqldb:file:/usuarios"); st2 = conn2.createStatement();
rst2 = st2.executeQuery("SELECT * FROM empleados");
// Creamos las columnas.
modelo.addColumn("id");
modelo.addColumn("nombre");
modelo.addColumn("nacimiento");
// Bucle para cada resultado en la consulta
while (rst2.next())
{
// Se crea un array que será una de las filas de la tabla.
Object [] fila
= new Object[3]; // Hay tres columnas en la tabla
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
for (int i=0;i<3;i++)
fila[i] = rst2.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
tabla.setModel(modelo);
add(tabla);
st2.close();
conn2.close();
}
}