Introducción a la programación con Java
De WikiEducator
< Usuario:ManuelRomero
Revisión a fecha de 10:17 14 feb 2012; ManuelRomero (Discusión | contribuciones)
Contenido
Documentación inicial
Java
Entorno de desarrollo Java
Referencias online
JDK
JRE
Sintaxis básica
Eclipse
Ejemplo 1
Entorno gráfico swingx
Layout GridBagLayout
Eventos
import javax.swing.*; import concesionario.Cliente; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException; import java.awt.Event.*; import java.sql.*; public class ICliente extends JFrame{ // Definición de objetos gráficos para el interfaz JLabel lNum = new JLabel ("Número"); JTextField tNum = new JTextField(5); JLabel lApellido = new JLabel("Apellido"); JTextField tApellido = new JTextField (5); JLabel lNombre = new JLabel("Nombre"); JTextField tNombre = new JTextField (5); JButton bPrimero = new JButton("primero"); JButton bAnterior = new JButton("anterior"); JButton bSiguiente= new JButton("siguiente"); JButton bUltimo = new JButton("ultimo"); //Paneles contenedores además del contenedor principal que es el frame JPanel pDatos = new JPanel(); JPanel pBotones = new JPanel(); //Layout para distribución de objetos en el contenedor FlowLayout fL = new FlowLayout(); BorderLayout bL= new BorderLayout(); BoxLayout bxL = new BoxLayout(this.getContentPane(),BoxLayout.LINE_AXIS); //para poderme comunciar con otras clases Cliente cliente = new Cliente(); ResultSet consulta; //Para trabajar con el resultado de una consulta concreta static Conexion conexion; //static para poder ser usada en el main que es static public ICliente(){ //Ponemos los layout pDatos.setLayout(fL); pBotones.setLayout(fL); setLayout(bL); //Añadimos los objetos a los contenedores //primero los contenidos a los paneles pBotones.add(bPrimero); pBotones.add(bSiguiente); pBotones.add(bAnterior); pBotones.add(bUltimo); pDatos.add(lNum); pDatos.add(tNum); pDatos.add(lNombre); pDatos.add(tNombre); pDatos.add(lApellido); pDatos.add(tApellido); //Luego los paneles al JFrame add(pDatos,bL.PAGE_START); add(pBotones,bL.PAGE_END); //Colocamos y visualizamos el JFrame setBounds(100,100,600,200); setTitle("Recorrido de la tabla Clientes"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); //Cremos un objeto escuchador de la interfaz ActionListener ManejadorEventos elEscuchador= new ManejadorEventos(); //Agregamos este objeto a los botones desde los que quieremos recoger el evento bPrimero.addActionListener(elEscuchador); bSiguiente.addActionListener(elEscuchador); bAnterior.addActionListener(elEscuchador); bUltimo.addActionListener(elEscuchador); //Realizamos la consulta para después moverme sobre ella (avanzar o retroceder). try{ consulta =conexion.hacerConsulta("Select * from clientes"); }catch(SQLException ex){ System.out.println("Error "+ex.getMessage()); } } public void cargaDatos(Cliente c){ tNombre.setText(c.getNombre()); tApellido.setText(c.getApellido()); tNum.setText(c.getNumero().toString()); } private class ManejadorEventos implements ActionListener{ public void actionPerformed(ActionEvent e) { try{ if (e.getSource()== bPrimero){ if (consulta.isFirst()) JOptionPane.showMessageDialog(null,"Ya es el primer registro"); else consulta.first(); } if (e.getSource()== bSiguiente){ consulta.next(); } if (e.getSource()== bAnterior){ consulta.previous(); } if (e.getSource()== bUltimo){ if (consulta.isLast()) JOptionPane.showMessageDialog(null,"Ya es el último registro"); else consulta.last(); } cliente.setDatos(consulta); cargaDatos(cliente); }catch(SQLException ex){ JOptionPane.showMessageDialog(null,"La consulta no ha devuelto filas"); } } } public static void main(String []s){ try{ conexion = new Conexion(); }catch(SQLException e){ JOptionPane.showMessageDialog(null,"Error en conexion en bd "+e.getMessage()); }catch (ClassNotFoundException e){ JOptionPane.showMessageDialog(null,"Error en BD" +e.getMessage()); } ICliente elCliente = new ICliente(); } }//End class