Introducción a la programación con Java

De WikiEducator
Saltar a: navegación, buscar


100px

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