Diferencia entre revisiones de «Usuario:ManuelRomero/javasintaxis»
De WikiEducator
(Página creada con '===Layout '''GridBagLayout'''=== <source lang="java"> r.fill=GridBagConstraints.HORIZONTAL; r.anchor=GridBagConstraints.WEST; r.weightx=10; r.weighty=10; r.ipady =50; r.insets= …') |
|||
Línea 11: | Línea 11: | ||
setLayout (bL); | setLayout (bL); | ||
p.setLayout(l); | p.setLayout(l); | ||
+ | </source> | ||
+ | |||
+ | <source lang="java"> | ||
+ | import javax.swing.*; | ||
+ | import java.awt.*; | ||
+ | import javax.swing.border.*; | ||
+ | public class MarcoGB extends JFrame{ | ||
+ | |||
+ | GridBagConstraints r = new GridBagConstraints(); | ||
+ | GridBagLayout l= new GridBagLayout(); | ||
+ | JPanel p = new JPanel(); | ||
+ | String[] etiquetas= {"Nombre","Apellido","Dirección","Código postal","Localidad","Provincia","Fecha Nacimiento","Correo","Sexo","Estudios","Otros Datos"}; | ||
+ | String[] sexo={"Hombre","Mujer","No quiero aportar"}; | ||
+ | public MarcoGB(){ | ||
+ | |||
+ | //Valores generales para todas las colocaciones | ||
+ | |||
+ | r.fill=GridBagConstraints.HORIZONTAL; | ||
+ | r.anchor=GridBagConstraints.WEST; | ||
+ | //r.weightx=10; | ||
+ | //r.weighty=10; | ||
+ | //r.ipady =50; | ||
+ | r.insets= new Insets(10,5,2,2); | ||
+ | |||
+ | Box b= new Box(1); | ||
+ | FlowLayout bL = new FlowLayout(); | ||
+ | setLayout (bL); | ||
+ | p.setLayout(l); | ||
+ | //Colocamos los label | ||
+ | JLabel LNombre = new JLabel("Nombre"); | ||
+ | AnadirComponente(LNombre,0,0,1,1); | ||
+ | |||
+ | JLabel LApellido = new JLabel("Apellido"); | ||
+ | AnadirComponente(LApellido,3,0,1,1); | ||
+ | |||
+ | JLabel LDireccion = new JLabel("Direccion"); | ||
+ | AnadirComponente(LDireccion,0,1,1,1); | ||
+ | |||
+ | JLabel LCodPostal= new JLabel("Codigo Postal"); | ||
+ | AnadirComponente(LCodPostal,3,1,1,1); | ||
+ | |||
+ | JLabel LLocalidad = new JLabel("Localidad"); | ||
+ | AnadirComponente(LLocalidad,0,2,1,1); | ||
+ | |||
+ | JLabel LProvincia = new JLabel("Provincia"); | ||
+ | AnadirComponente(LProvincia,3,2,1,1); | ||
+ | |||
+ | JLabel LFNac= new JLabel("Fecha de nacimiento"); | ||
+ | AnadirComponente(LFNac,0,3,2,1); | ||
+ | |||
+ | JLabel LCorreo= new JLabel("Correo"); | ||
+ | AnadirComponente(LCorreo,3,3,1,1); | ||
+ | |||
+ | JLabel LSexo= new JLabel("Sexo"); | ||
+ | AnadirComponente(LSexo,0,4,1,1); | ||
+ | |||
+ | JLabel LEstudios = new JLabel("Estudios"); | ||
+ | AnadirComponente(LEstudios,3,5,1,1); | ||
+ | |||
+ | JLabel LODatos = new JLabel("Otros Datos de interés"); | ||
+ | AnadirComponente(LODatos,0,5,2,1); | ||
+ | |||
+ | |||
+ | //Ahora colocamos las cajas de texto | ||
+ | |||
+ | JTextField TNombre = new JTextField(10); | ||
+ | //JFormattedTextField. | ||
+ | AnadirComponente(TNombre,1,0,2,1); | ||
+ | JTextField TApellido = new JTextField(10); | ||
+ | |||
+ | AnadirComponente(TApellido,4,0,2,1); | ||
+ | |||
+ | JTextField TDireccion = new JTextField(); | ||
+ | AnadirComponente(TDireccion,1,1,2,1); | ||
+ | JTextField TCodPostal = new JTextField(5); | ||
+ | AnadirComponente(TCodPostal,4 ,1,1,1); | ||
+ | |||
+ | |||
+ | JTextField TLocalidad = new JTextField(); | ||
+ | AnadirComponente(TLocalidad,1,2,2,1); | ||
+ | |||
+ | JTextField TProvincia = new JTextField(10); | ||
+ | AnadirComponente(TProvincia,4,2,1,1); | ||
+ | JTextField TFNac = new JTextField(); | ||
+ | AnadirComponente(TFNac,2,3,1,1); | ||
+ | JTextField TCorreo = new JTextField(10); | ||
+ | AnadirComponente(TCorreo,4,3,1,1); | ||
+ | JComboBox TSexo = new JComboBox(sexo); | ||
+ | AnadirComponente(TSexo,2,4,1,1); | ||
+ | JTextField TEstudios = new JTextField(); | ||
+ | AnadirComponente(TEstudios,4,4,1,1); | ||
+ | |||
+ | JTextArea TODatos = new JTextArea(10,3); | ||
+ | TODatos.setBorder(BorderFactory.createLineBorder(Color.BLUE)); | ||
+ | AnadirComponente(TODatos,0,6,3,1); | ||
+ | |||
+ | JButton BAceptar = new JButton("Aceptar"); | ||
+ | AnadirComponente(BAceptar,3,10,1,1); | ||
+ | JButton BCancelar= new JButton("Cancelar"); | ||
+ | AnadirComponente(BCancelar,4,10,1,1); | ||
+ | //Poner un borde con un título | ||
+ | TitledBorder titulo =BorderFactory.createTitledBorder("Datos Personales"); | ||
+ | p.setBorder(titulo); | ||
+ | //jComp8.setBorder(title); | ||
+ | |||
+ | |||
+ | add(p); | ||
+ | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
+ | setSize(500,500);//ancho y alto | ||
+ | setVisible(true); | ||
+ | |||
+ | |||
+ | // | ||
+ | } | ||
+ | |||
+ | private void AnadirComponente(Component c, int columna, | ||
+ | int fila, int anchura, int altura){ | ||
+ | |||
+ | r.gridx=columna; | ||
+ | r.gridy=fila; | ||
+ | r.gridwidth = anchura; | ||
+ | r.gridheight=altura; | ||
+ | l.setConstraints(c,r); | ||
+ | p.add(c); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * @param args | ||
+ | */ | ||
+ | |||
+ | // TODO Auto-generated method stub | ||
+ | public static void main(String[] args) { | ||
+ | SwingUtilities.invokeLater(new Runnable() { | ||
+ | public void run() { | ||
+ | new MarcoGB(); | ||
+ | } | ||
+ | }); | ||
+ | SwingUtilities.invokeLater(new Runnable() { | ||
+ | public void run() { | ||
+ | new MarcoGB(); | ||
+ | } | ||
+ | }); | ||
+ | SwingUtilities.invokeLater(new Runnable() { | ||
+ | public void run() { | ||
+ | new MarcoGB(); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==Eventos== | ||
+ | <source lang="java"> | ||
+ | |||
+ | 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 | ||
+ | |||
</source> | </source> |
Revisión de 03:16 10 feb 2012
Layout GridBagLayout
r.fill=GridBagConstraints.HORIZONTAL; r.anchor=GridBagConstraints.WEST; r.weightx=10; r.weighty=10; r.ipady =50; r.insets= new Insets(10,5,2,2); Box b= new Box(1); FlowLayout bL = new FlowLayout(); setLayout (bL); p.setLayout(l);
import javax.swing.*; import java.awt.*; import javax.swing.border.*; public class MarcoGB extends JFrame{ GridBagConstraints r = new GridBagConstraints(); GridBagLayout l= new GridBagLayout(); JPanel p = new JPanel(); String[] etiquetas= {"Nombre","Apellido","Dirección","Código postal","Localidad","Provincia","Fecha Nacimiento","Correo","Sexo","Estudios","Otros Datos"}; String[] sexo={"Hombre","Mujer","No quiero aportar"}; public MarcoGB(){ //Valores generales para todas las colocaciones r.fill=GridBagConstraints.HORIZONTAL; r.anchor=GridBagConstraints.WEST; //r.weightx=10; //r.weighty=10; //r.ipady =50; r.insets= new Insets(10,5,2,2); Box b= new Box(1); FlowLayout bL = new FlowLayout(); setLayout (bL); p.setLayout(l); //Colocamos los label JLabel LNombre = new JLabel("Nombre"); AnadirComponente(LNombre,0,0,1,1); JLabel LApellido = new JLabel("Apellido"); AnadirComponente(LApellido,3,0,1,1); JLabel LDireccion = new JLabel("Direccion"); AnadirComponente(LDireccion,0,1,1,1); JLabel LCodPostal= new JLabel("Codigo Postal"); AnadirComponente(LCodPostal,3,1,1,1); JLabel LLocalidad = new JLabel("Localidad"); AnadirComponente(LLocalidad,0,2,1,1); JLabel LProvincia = new JLabel("Provincia"); AnadirComponente(LProvincia,3,2,1,1); JLabel LFNac= new JLabel("Fecha de nacimiento"); AnadirComponente(LFNac,0,3,2,1); JLabel LCorreo= new JLabel("Correo"); AnadirComponente(LCorreo,3,3,1,1); JLabel LSexo= new JLabel("Sexo"); AnadirComponente(LSexo,0,4,1,1); JLabel LEstudios = new JLabel("Estudios"); AnadirComponente(LEstudios,3,5,1,1); JLabel LODatos = new JLabel("Otros Datos de interés"); AnadirComponente(LODatos,0,5,2,1); //Ahora colocamos las cajas de texto JTextField TNombre = new JTextField(10); //JFormattedTextField. AnadirComponente(TNombre,1,0,2,1); JTextField TApellido = new JTextField(10); AnadirComponente(TApellido,4,0,2,1); JTextField TDireccion = new JTextField(); AnadirComponente(TDireccion,1,1,2,1); JTextField TCodPostal = new JTextField(5); AnadirComponente(TCodPostal,4 ,1,1,1); JTextField TLocalidad = new JTextField(); AnadirComponente(TLocalidad,1,2,2,1); JTextField TProvincia = new JTextField(10); AnadirComponente(TProvincia,4,2,1,1); JTextField TFNac = new JTextField(); AnadirComponente(TFNac,2,3,1,1); JTextField TCorreo = new JTextField(10); AnadirComponente(TCorreo,4,3,1,1); JComboBox TSexo = new JComboBox(sexo); AnadirComponente(TSexo,2,4,1,1); JTextField TEstudios = new JTextField(); AnadirComponente(TEstudios,4,4,1,1); JTextArea TODatos = new JTextArea(10,3); TODatos.setBorder(BorderFactory.createLineBorder(Color.BLUE)); AnadirComponente(TODatos,0,6,3,1); JButton BAceptar = new JButton("Aceptar"); AnadirComponente(BAceptar,3,10,1,1); JButton BCancelar= new JButton("Cancelar"); AnadirComponente(BCancelar,4,10,1,1); //Poner un borde con un título TitledBorder titulo =BorderFactory.createTitledBorder("Datos Personales"); p.setBorder(titulo); //jComp8.setBorder(title); add(p); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,500);//ancho y alto setVisible(true); // } private void AnadirComponente(Component c, int columna, int fila, int anchura, int altura){ r.gridx=columna; r.gridy=fila; r.gridwidth = anchura; r.gridheight=altura; l.setConstraints(c,r); p.add(c); } /** * @param args */ // TODO Auto-generated method stub public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new MarcoGB(); } }); SwingUtilities.invokeLater(new Runnable() { public void run() { new MarcoGB(); } }); SwingUtilities.invokeLater(new Runnable() { public void run() { new MarcoGB(); } }); } }
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