Autor
|
Tema: jtable manejo (Leído 4,327 veces)
|
geanca
Desconectado
Mensajes: 1
|
Buenas tardes me presento soy geanca de paysandu republica oriental del URUGUAY
estoy intentando realizar una aplicacion con jtable en la cual pueda manipular3 datos en una base de datos
en fin lo que quiero hacer es lo siguiente en un jframa colocar un jtable y 2 boton (ingresar,cargar) ingresar datos en el jtable y al presionar el boton ingresar insertarlos en la base de datos y al presionar el boton cargar me traiga los datos de la base y la carge en el jtable
agradezco si alguien tiene algun ejemplo me pueda enviandomelo muchas gracias
|
|
|
En línea
|
|
|
|
jperezmonge
Desconectado
Mensajes: 24
Chronos Estudios
|
Yo te aconsejo que crees un ModeloJTableNombre extends AbstractTableModel, así desde esa clase podrás hacer la carga y descarga de los datos en un arrayList que esta almacenado en ModeloJTableNombre mediante métodos, creo que mucho mas intuitivo.
|
|
|
En línea
|
|
|
|
Debci
Wiki
Desconectado
Mensajes: 2.021
Actualizate o muere!
|
Podrías aportarnos algo que ya tengas hecho? Leete las normas, se bienvenido al foro.
Saludos
|
|
|
En línea
|
|
|
|
jperezmonge
Desconectado
Mensajes: 24
Chronos Estudios
|
Aquí os dejo un ejemplo, a ver si con este código os soluciono algo. Son códigos muy grandes, ahí alguna forma para poder subir los dos archivos y ya te lo miras tu en algún entorno IDE? y donde están las normas para leérmelas . UsuarioJTable: package vista;
import java.awt.BorderLayout; import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.awt.event.WindowListener;
import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import controlador.ModeloJTableUsuario;
import modelo.Usuario;
/** * * @author maquinavirtual * */ public class UsuarioJTable extends JFrame {
private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JPanel jPanelEntradaDatos = null; private JButton jButtonInsertarUsuario = null; private JButton jButtonEliminarUsuario = null; private JPanel jPanelJListUsuario = null; private JTable jTableUsuario = null;
// panel inferior con la informacion de la Usuario private PanelInfoUsuario panelInfoUsuario = null ; // ventanas llamadas ( una sola ventana para todas las llamadas ) private VentanaInsertarUsuario ventanaInsertarUsuario = null ; // variable que almacena el modelo del JTableUsuario ( modelo para almacenar Usuarioes ) private ModeloJTableUsuario modeloJTableUsuario = null ; /** * @return the modeloJTableUsuario */ public ModeloJTableUsuario getModeloJTableUsuario() { if ( modeloJTableUsuario == null ){ modeloJTableUsuario = new ModeloJTableUsuario(); } return modeloJTableUsuario; }
/** * This is the default constructor */ public UsuarioJTable() { super(); initialize(); }
/** * This method initializes this * * @return void */ private void initialize() { this.setSize(470, 370); this.setContentPane(getJContentPane()); this.setTitle("JTable con Usuario"); this.setVisible(true); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent arg0) { Component frame = null; int n = JOptionPane.showConfirmDialog( frame, "¿Desea Guardar los datos antes de salir?", "Responde antes de salir", JOptionPane.YES_NO_OPTION); if(n == 0){ ModeloJTableUsuario modelo = getModeloJTableUsuario(); modelo.guardarDatos(); } dispose(); } @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub } } ); }
/** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(getJPanelEntradaDatos(), BorderLayout.NORTH); jContentPane.add(getJPanelJListUsuario(), BorderLayout.CENTER); jContentPane.add(getPanelInfoUsuario(), BorderLayout.SOUTH); } return jContentPane; }
/** * This method initializes jPanelEntradaDatos * * @return javax.swing.JPanel */ private JPanel getJPanelEntradaDatos() { if (jPanelEntradaDatos == null) { FlowLayout flowLayout = new FlowLayout(); flowLayout.setHgap(10); flowLayout.setVgap(10); flowLayout.setAlignment(FlowLayout.LEFT); jPanelEntradaDatos = new JPanel(); jPanelEntradaDatos.setLayout(flowLayout); jPanelEntradaDatos.add(getJButtonInsertarUsuario(), null); jPanelEntradaDatos.add(getJButtonEliminarUsuario(), null); } return jPanelEntradaDatos; }
/** * This method initializes jButtonInsertarUsuario * * @return javax.swing.JButton */ private JButton getJButtonInsertarUsuario() { if (jButtonInsertarUsuario == null) { jButtonInsertarUsuario = new JButton(); jButtonInsertarUsuario.setText(" Insertar Usuario "); jButtonInsertarUsuario.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {
// variable con el panel de informacion de Usuario PanelInfoUsuario panelInfoUsuario = getVentanaInsertarUsuario().getPanelDatosUsuario(); // Peticion de foco en el campo de nombre panelInfoUsuario.getjTextFieldDni().requestFocus(); // si se hace click en aceptar Usuario if ( VentanaInsertarUsuario.C_ACEPTAR_USUARIO == getVentanaInsertarUsuario().mostrarVentanaModal() ){ //System.out.println("Acepta Usuario"); String dni = panelInfoUsuario.getjTextFieldDni().getText(); String nombre = panelInfoUsuario.getjTextFieldNombre().getText(); String telefono = panelInfoUsuario.getjTextFieldTelefono().getText(); // creo un Usuario Usuario p; try { p = new Usuario(dni, nombre, telefono);
ModeloJTableUsuario modelo = getModeloJTableUsuario(); // agrego la Usuario al modelo modelo.insertaUsuario(p); // Mostramos la informacion de la Usuario en el panel inferior getPanelInfoUsuario().mostrarDatosUsuario(p); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } // limpiamos los campos panelInfoUsuario.limpiarCampos(); } }); } return jButtonInsertarUsuario; }
/** * This method initializes jButtonEliminarUsuario * * @return javax.swing.JButton */ private JButton getJButtonEliminarUsuario() { if (jButtonEliminarUsuario == null) { jButtonEliminarUsuario = new JButton(); jButtonEliminarUsuario.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // obtenemos el modelo ModeloJTableUsuario modelo = getModeloJTableUsuario(); int index = getJTableUsuario().getSelectedRow(); // Si se selecciona un elemento en la lista if ( index >= 0 ) { modelo.eliminarUsuario(index); getPanelInfoUsuario().limpiarCampos(); } } }); jButtonEliminarUsuario.setText(" Eliminar Usuario "); } return jButtonEliminarUsuario; }
/** * This method initializes jPanelJListUsuario * * @return javax.swing.JPanel */ private JPanel getJPanelJListUsuario() { if (jPanelJListUsuario == null) { jPanelJListUsuario = new JPanel(); jPanelJListUsuario.setLayout(new BorderLayout()); jPanelJListUsuario.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); //jPanelJListUsuario.add(getJTableUsuario(), BorderLayout.CENTER); JScrollPane scrollPane = new JScrollPane(getJTableUsuario());; jPanelJListUsuario.add(scrollPane,BorderLayout.CENTER); } return jPanelJListUsuario; }
/** * This method initializes jListUsuario * * @return javax.swing.JList */ private JTable getJTableUsuario() { if (jTableUsuario == null) { // le asigno un modelo al constructor jTableUsuario= new JTable(); //Seleccion de un solo elemento jTableUsuario.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //Escuchador de tecla jTableUsuario.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { JTable jtable = (JTable) e.getSource(); //Coge la tecla pulsada y comprueba si es una flecha int teclaPulsada = e.getKeyCode(); if(teclaPulsada == KeyEvent.VK_UP || teclaPulsada == KeyEvent.VK_DOWN || teclaPulsada == KeyEvent.VK_TAB){ //int fila = jtable.getSelectedRow(); // Usuario seleccionada del JList Usuario p = (Usuario)modeloJTableUsuario.devolverUsuario(jtable.getSelectedRow()); //Mostrar datos de la Usuario getPanelInfoUsuario().mostrarDatosUsuario(p); } } }); jTableUsuario.setModel( getModeloJTableUsuario() ); // asigno el modelo jTableUsuario.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { JTable jtable = (JTable) e.getSource(); int numeroClicks = e.getClickCount(); // Usuario seleccionada del JList Usuario p = (Usuario)modeloJTableUsuario.devolverUsuario(jtable.getSelectedRow()); // Si hay algo seleccionado if ( ( jtable.getSelectedRow() >= 0 ) && ( numeroClicks == 2 ) ){
// variable con el panel de informacion de Usuario PanelInfoUsuario panelInfoUsuario = getVentanaInsertarUsuario().getPanelDatosUsuario();
// Usuario seleccionada del JList panelInfoUsuario.mostrarDatosUsuario(p);
// Peticion de foco en el campo de nombre panelInfoUsuario.getjTextFieldDni().requestFocus(); // Mostrar el cuadro de dialogo con los datos de la Usuario // si se hace click en aceptar Usuario if ( VentanaInsertarUsuario.C_ACEPTAR_USUARIO == getVentanaInsertarUsuario().mostrarVentanaModal() ){ // capturo los nuevos valores String dni = panelInfoUsuario.getjTextFieldDni().getText(); String nombre = panelInfoUsuario.getjTextFieldNombre().getText(); String telefono = panelInfoUsuario.getjTextFieldTelefono().getText(); try { // asigno los nuevos valores para la Usuario p.setDni(dni); p.setNombre(nombre); p.setTelefono(telefono); // mostramos el panel inferior con los nuevos datos de la Usuario getPanelInfoUsuario().mostrarDatosUsuario(p);
getModeloJTableUsuario().fireTableDataChanged(); } catch (Exception e1) { // e1.printStackTrace(); } } // de if // limpiamos los campos panelInfoUsuario.limpiarCampos(); } //Muestra en el panel inferior el valor seleccionado en el jTable if( jtable.getSelectedRow() >= 0){ getPanelInfoUsuario().mostrarDatosUsuario(p); } } }); } return jTableUsuario; }
// Metodo que devuelve un panel con la informacion de la Usuario private PanelInfoUsuario getPanelInfoUsuario(){ if ( panelInfoUsuario == null ){ panelInfoUsuario = new PanelInfoUsuario(); } return panelInfoUsuario; } // obtengo la ventana de insertar Usuario private VentanaInsertarUsuario getVentanaInsertarUsuario(){ if ( ventanaInsertarUsuario == null ){ ventanaInsertarUsuario = new VentanaInsertarUsuario(); } ventanaInsertarUsuario.setLocationRelativeTo(this); return ventanaInsertarUsuario; } } // @jve:decl-index=0:visual-constraint="10,10"
Clase ModeloJTableUsuario: package controlador;
import java.sql.Connection;
/** * * @author maquinavirtual * */ public class ModeloJTableUsuario extends AbstractTableModel {
/** * */ private static final long serialVersionUID = 1L; //Coleccion que almacena los datos del modelo private ArrayList<Usuario> myData = null; private String[] nombreColumnas = {"Dni" , "Nombre", "Telefono"}; /** * Constructor vacÃo * */ public ModeloJTableUsuario() { myData = cargarDatos(); } private ArrayList<Usuario> cargarDatos() { ArrayList<Usuario> temporal = new ArrayList<Usuario>();
//Creación del objeto que conectará a la BD ConnectionJDBC cj = new ConnectionJDBC(); ConnectionJDBC cjMySqlJDBC = new ConnectionJDBC(); Statement dbStatement = null; ResultSet dbResulSet = null; try { Connection dbConnectMysql = cjMySqlJDBC.getConnection("jdbc:mysql://127.0.0.1/entorno","user","user"); //creo un objeto Statement dbStatement = dbConnectMysql.createStatement(); //creo un objeto ResulSet para realizar una consulta a la base de datos dbResulSet = dbStatement.executeQuery("SELECT * from usuario"); //recorremos la consulta while(dbResulSet.next()){ //obtengo el identificador String dni = dbResulSet.getString(1); //obtengo el descripcion String nombre = dbResulSet.getString(2); //obtengo el telefono String telefono = dbResulSet.getString(3); try { temporal.add(new Usuario(dni, nombre, telefono)); } catch (Exception e) { e.printStackTrace(); } } System.out.println("conexión creada"); cj.closeConnection(dbConnectMysql, dbStatement); System.out.println("conexión cerrada"); } catch (SQLException e) { e.printStackTrace(); } return temporal; }
/** * Método que inserta un perfil(por si no se nota...) * */ public void insertaUsuario(Usuario p){ if(p != null){ myData.add(p); //Inserto el perfil en el modelo
//Notifica a la tabla que han habido cambios this.fireTableDataChanged(); } } public Usuario devolverUsuario (int fila){ if(fila >= 0 && fila < myData.size()) return myData.get(fila); return null; } @Override public String getColumnName(int column) { return nombreColumnas[column]; }
/* (non-Javadoc) * @see javax.swing.table.TableModel#getRowCount() */ @Override public int getRowCount() { return myData.size(); }
/* (non-Javadoc) * @see javax.swing.table.TableModel#getColumnCount() */ @Override public int getColumnCount() { return 3; }
/** * Metodo que elimina un perfil * */ public void eliminarUsuario(Usuario p){ if(p != null){ if(myData.contains(p)){ myData.remove(p); //Notifica a la tabla que han habido cambios this.fireTableDataChanged(); } }
} /** * Metodo que elimina un perfil pasando un indice * */ public void eliminarUsuario(int index){ if(index >= 0 && index < myData.size()){ myData.remove(index); //Notifica a la tabla que han habido cambios this.fireTableDataChanged(); }
} /* (non-Javadoc) * @see javax.swing.table.TableModel#getValueAt(int, int) */ @Override public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) { case 0: return myData.get(rowIndex).getDni(); case 1: return myData.get(rowIndex).getNombre(); case 2: return myData.get(rowIndex).getTelefono(); default: return null; } }
public void guardarDatos(){ //Creación del objeto que conectará a la BD ConnectionJDBC cj = new ConnectionJDBC(); ConnectionJDBC cjMySqlJDBC = new ConnectionJDBC(); Statement dbStatement = null; try { Connection dbConnectMysql = cjMySqlJDBC.getConnection("jdbc:mysql://127.0.0.1/entorno","user","user"); //creo un objeto Statement dbStatement = dbConnectMysql.createStatement(); //creo un objeto ResulSet para realizar una consulta a la base de datos dbStatement.executeUpdate("delete from usuario"); Iterator<Usuario> it = myData.iterator(); //recorremos la consulta while(it.hasNext()){ Usuario elem = it.next(); //obtengo el identificador String dni = elem.getDni(); //obtengo el nombre String nombre = elem.getNombre(); //obtengo el telefono String telefono = elem.getTelefono(); //System.out.println(id + "," + descripcion); dbStatement.executeUpdate("INSERT INTO usuario VALUES ( '" + dni + "', '" + nombre + "', '" + telefono + "')"); try { } catch (Exception e) { e.printStackTrace(); } } System.out.println("conexión creada"); cj.closeConnection(dbConnectMysql, dbStatement); System.out.println("conexión cerrada"); } catch (SQLException e) { e.printStackTrace(); } }
}
|
|
« Última modificación: 19 Febrero 2012, 16:16 pm por jperezmonge »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Tutos: obtener datos y manejo de windows con c#... tuto_1: manejo de procesos
Scripting
|
tongoxcore
|
2
|
9,408
|
21 Julio 2008, 23:44 pm
por Zaraki_lkenpachi
|
|
|
help jtable
Java
|
visualfree
|
3
|
3,861
|
1 Mayo 2009, 05:38 am
por Amerikano|Cls
|
|
|
Uso de jTable y jComboBox
Java
|
garçon
|
3
|
10,175
|
24 Junio 2009, 22:47 pm
por garçon
|
|
|
ayuda con un jtable
Java
|
Willy Wonka
|
0
|
2,283
|
8 Julio 2009, 14:46 pm
por Willy Wonka
|
|
|
Manejo de focus en Jtable ??
Java
|
razler
|
1
|
3,462
|
4 Septiembre 2013, 18:47 pm
por 1mpuls0
|
|