Re: actualizar jTable2
juan lopez <jazpiroz2006-/[email protected]>
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
el tema esta en que yo uso un vector y un modelo que extiend de tablemodel se entiende? gracias --- El jue 17-abr-08, Darkman shadows <darkman87ucr-/[email protected]> escribió: > De: Darkman shadows <darkman87ucr-/[email protected]> > Asunto: Re: [javaSpain] actualizar jTable2 > Para: [email protected] > Fecha: jueves, 17 de abril de 2008, 9:05 pm > Osea no se como lo que quiere hacer pero es lo mismo simpre, > si quiere cambiarle los datos a un JList haga esto > setListData y le pasas el nuevo arreglo, si solo quiere > adjuntar un elemento lo adjuntas y le indicas la posicion, > la posicion seria el valor del arreglo que tiene los datos > (length) que le pasaste cuando construiste el objeto y > listo.............................................................. > > > > DarkMan87 > La civilización no suprime la barbarie, la perfecciona. > > > > ----- Mensaje original ---- > De: juan lopez <jazpiroz2006-/[email protected]> > Para: [email protected] > Enviado: jueves, 17 de abril, 2008 13:51:20 > Asunto: Re: [javaSpain] actualizar jTable > > vos decis agregar un addActionListener a un boton y ahi > escuchar?? > yo lo hago así pero no logro actualizar, > y no entiendo porque?? > > por favor alguien que me pueda dar una mano con esto!!1 > > --- El vie 11-abr-08, Darkman shadows <darkman87ucr@ > yahoo.com> escribió: > > De: Darkman shadows <darkman87ucr@ yahoo.com> > Asunto: Re: [javaSpain] actualizar jTable > Para: javaSpain@yahoogrou ps.com > Fecha: viernes, 11 de abril de 2008, 4:53 pm > > > No lei todo el codigo de abajo pero me imagino que lo que > quiere hacer es desplegar un JTable con informacion, normal > digamos un > arreglo de tipo String, que escuche algun evento al algo > por el estilo y cambie la informacion en el JTable, digamos > que agregue > un nuevo arreglo de tipo String con nuevos valores, si es > algo parecido a lo que quieres hacer espero q este codigo > te sirva. > > declaras la variable que contendra el JList > private JList jltFiguras; > luego declaras el arreglo inicial que contendra el JList > private static String nombreFigurasBidime nsionales[ > ]={"Circulo" ,"Rectangulo" > ,"Cuadrado" }; > luego el segundo arreglo, el cual deseamos que se repinte > en el JList al escuhar el evento > private static String nombreFigurasTridim ensionales[ > ]={"Cubo" ,"Cilindro" > ,"Piramide" }; > en el constructor llenas el JList con la info (arreglo) > inicial > jltFiguras = new JList (nombreFigurasBidim ensionales) ; > le colocas un listener a un boton, o al elemto que deseas y > dentro del metodo (Listener) haces esto > jltFiguras.setListD ata(nombreFigura sTridimensionale s); > esto lo que hace es que sustituye el valor que tienes en el > JList y lo vuelve a "pintar" con los nuevos > valores > otro caso es si solo quieres agragar un nuevo elemento al > JList > jltFiguras.add( e , pos); > el "e" es un componete o String que deseas > agragar y el int pos la posicion que deseas que ocupe > > DarkMan87 > La civilización no suprime la barbarie, la perfecciona. > > > > ----- Mensaje original ---- > De: juan lopez <jazpiroz2006@ yahoo.com. ar> > Para: grupo java <javaspain@yahoogrou ps.com> > Enviado: martes, 8 de abril, 2008 19:53:49 > Asunto: [javaSpain] actualizar jTable > > > Hola yo devuelta, hace un tiempo pregunte por esto, y bueno > desde entonces no encuentro la soluciòn a poder actualizar > una tabla ya sea con un boton actualizar o automaticamente, > navegar si he navegado y probado de todo > estoy desesperado por esto, > les pego el codigo y me cuentan como puedo lograr esto > desde ya muchas gracias > > el tableModel: > > package grafica; > import java.util.Vector; > import javax.swing. table.AbstractTa bleModel; > import logica.Clientes; > import logica.Material; > import logica.Proveedor; > import javax.swing. table.*; > import javax.swing. event.*; > import java.util.*; > public class TableModelProveedor es extends > AbstractTableModel{ > private Vector vecPro; > > private String [] columnas={"Có > digo","Nombre" ,"Direcció > n","Teléfono" > ,"RUC","Contacto "}; > // Constructor. Recibe los bov a mostrar en la tabla y > las guarda > public TableModelProveedor es(Vector cli) > { > vecPro = cli; > } > > // métodos sobre-escritos heredados de > AbstractTableModel > > // cantidad de columnas > public int getColumnCount( ) > { > return columnas.length; > } > > // cantidad de filas > public int getRowCount( ) > { > return vecPro.size( ); > } > > // nombre de columna > public String getColumnName( int col) > { > return columnas[col] ; > } > > // valor almacenado en una determinada posición de la > tabla > public Object getValueAt(int fila,int col) > { > switch(col) { > > case 0: return (((Proveedor) vecPro.get(fila) > ).getCodigo( )); > case 1: return ((Proveedor) vecPro.get(fila) > ).getNombre( ); > case 2: return ((Proveedor) vecPro.get(fila) > ).getDireccion( ); > case 3: return ((Proveedor) vecPro.get(fila) > ).getTelefono( ); > > case 4: return ((Proveedor) vecPro.get(fila) > ).getRuc( ); > case 5: return ((Proveedor) vecPro.get(fila) > ).getContacto( ); > > > > default: return null; > > //TableModelEvent evento = new TableModelEvent > (this,fila , fila); > // ... y pasándoselo a los suscriptores. > //avisaSuscriptores (evento); > > > > } > } > public int getCodAt(int fila){ > int codigo = ((Proveedor) vecPro.get(fila) > ).getCodigo( ); > return codigo; > > //Avisa a los suscriptores del cambio, creando un > TableModelEvent ... > > } > > > > > > /** Lista con los datos. Cada elemento de la lista es > una instancia de > * Persona */ > > > /** Lista de suscriptores. El JTable será un > suscriptor de este modelo de > * datos */ > private LinkedList listeners = new LinkedList() ; > > > > > public void addTableModelListen er(TableModelLis > tener l) { > // Añade el suscriptor a la lista de > suscriptores > listeners.add (l); > } > > public void removeTableModelLis tener(TableModel > Listener l) { > // Elimina los suscriptores. > listeners.remove( l); > } > > > > // que las celdas no sean editables > public boolean isCellEditable( int fila,int col) > { > return false; > } > > private void avisaSuscriptores (TableModelEvent evento) > { > int i; > > // Bucle para todos los suscriptores en la lista, > se llama al metodo > // tableChanged( ) de los mismos, pasándole el > evento. > for (i=0; i<vecPro.size( ); i++) > ((TableModelListene r)listeners. > get(i)).tableCha nged(evento) ; > } > > /*********** ***** actualizar() ************ ********* > ***/ > public Vector actualizar(Vector CC ) { > > // Ejecutar la consulta > vecPro=CC; > fireTableStructureC hanged(); // Ordena a la > JTable que se actualice > > return vecPro; > > } > > > > } > > > y la ventana donde genero la tabla: > > package grafica; > import java.awt.BorderLayo ut; > import java.awt.event. ActionEvent; > import java.awt.event. ActionListener; > import java.util.Iterator; > import java.util.Vector; > import javax.swing. ImageIcon; > 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. ListSelectionMod el; > import javax.swing. WindowConstants; > import javax.swing. event.ListSelect ionEvent; > import javax.swing. event.ListSelect ionListener; > import javax.swing. table.TableColum n; > import persistencia. ConexionSingleto nFirebird; > import java.sql.Connection ; > import java.util.*; > import net.sf.jasperreport s.engine. JasperFillManage r; > import net.sf.jasperreport s.engine. JasperPrint; > import net.sf.jasperreport s.view.JasperVie wer; > > import logica.ColClientes; > import logica.Clientes; > import logica.Facade; > import logica.Material; > import logica.Proveedor; > > /** > * This code was edited or generated using CloudGarden' > s Jigloo > * SWT/Swing GUI Builder, which is free for non-commercial > * use. If Jigloo is being used commercially (ie, by a > corporation, > * company or business for any purpose whatever) then you > * should purchase a license for each developer using > Jigloo. > * Please visit www.cloudgarden. com for details. > * Use of Jigloo implies acceptance of these licensing > terms. > * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR > * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED > * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE. > */ > public class VentanaListadoProve edores extends > javax.swing. JFrame implements ListSelectionListen er, > ActionListener { > private JPanel jPanel1; > private JPanel lista; > Vector vecBanco; > private JButton jButtonActualiza; > private JButton jButtonModifica; > private JButton jButtonSalir; > private JButton jButtonEliminar; > private JButton jButtonAgregar; > ListSelectionModel mod; > JTable tabla; > TableModelProveedor es modelo; > JButton boton; > JFrame frame; > Facade log; > public int codigo; > /** > * Auto-generated main method to display this JFrame > */ > public static void main(String[ ] args) { > VentanaListadoProve edores inst = new VentanaListadoProve > edores(); > inst.setVisible( true); > } > public VentanaListadoProve edores() { > super(); > initGUI(); > } > private void initGUI() { > try { > setDefaultCloseOper ation(WindowCons tants.DISPOSE_ > ON_CLOSE) ; > this.setLocation( new java.awt.Point( 80, 70)); > this.setTitle( "Listado de Proveedores" ); > { > jPanel1 = new JPanel(); > getContentPane( ).add(jPanel1, BorderLayout. CENTER); > jPanel1.setLayout( null); > jPanel1.setPreferre dSize(new java.awt.Dimension( 588, > 308)); > { > lista = new JPanel(); > jPanel1.add( lista); > lista.setBounds( 21, 7, 833, 406); > lista.setLayout( null); > } > { > jButtonAgregar = new JButton(); > jPanel1.add( jButtonAgregar) ; > jButtonAgregar. addActionListene r(this); > jButtonAgregar. setText(" Nuevo"); > jButtonAgregar. setBounds( 28, 420, 105, 28); > //jButtonAgregar. setIcon(new ImageIcon(getClass( > ).getClassLoader ().getResource( "grafica/ imagenes/ > bt_Nuevo. jpg"))); > } > { > jButtonEliminar = new JButton(); > jPanel1.add( jButtonEliminar) ; > jButtonEliminar.. addActionListene r(this); > jButtonEliminar. setText(" Eliminar" ); > jButtonEliminar. setBounds( 273, 420, 112, 28); > //jButtonEliminar. setIcon(new ImageIcon(getClass( > ).getClassLoader ().getResource( "grafica/ imagenes/ > bt_Eliminar. jpg"))); > } > { > jButtonSalir = new JButton(); > jPanel1.add( jButtonSalir) ; > jButtonSalir. addActionListene r(this); > jButtonSalir. setText(" Salir"); > jButtonSalir. setBounds( 756, 420, 98, 28); > //jButtonSalir. setIcon(new ImageIcon(getClass( > ).getClassLoader ().getResource( "grafica/ imagenes/ > btnSalir. jpg"))); > } > { > jButtonModifica = new JButton(); > jPanel1.add( jButtonModifica) ; > jButtonModifica. addActionListene r(this); > jButtonModifica. setText(" Modifica" ); > jButtonModifica. setBounds( 147, 420, 112, 28); > //jButtonModifica. setIcon(new ImageIcon(getClass( > ).getClassLoader ().getResource( "grafica/ imagenes/ > bt_Editar. jpg"))); > } > { > jButtonActualiza = new JButton(); > jPanel1.add( jButtonActualiza ); > jButtonActualiza. setText(" Actualiza Listado"); > jButtonActualiza. addActionListene r(this); > jButtonActualiza. setBounds( 406, 420, 126, 28); > } > try{ > log = new Facade(0); > Iterator itera = log.listarProv( 0); > vecBanco = new Vector(); > while(itera. hasNext() ){ > Proveedor cli = (Proveedor)itera. next(); > vecBanco.addElement (cli);//el table model recibe un > vector, no un iterator > } > }catch(Exception ex){ > JOptionPane. showMessageDialo g(this,ex. getMessage( > ),"Error" ,JOptionPane.. ERROR_MESSAGE) ; > } > modelo = new TableModelProveedor es(vecBanco) ; > tabla = new JTable(modelo) ; > tabla.setSelectionM ode(ListSelectio nModel.SINGLE_ > SELECTION) ; > mod = tabla.getSelectionM odel(); > mod.addListSelectio nListener( this); > //parte grafica > JScrollPane scrollPane = new JScrollPane( tabla); > lista.add(scrollPan e); > scrollPane.setBound s(7, 7, 826, 385); > setPreferredWidth( ); > } > pack(); > this.setSize( 867, 493); > } catch (Exception e) { > e.printStackTrace( ); > } > } > public void setPreferredWidth( ){ > TableColumn columna = null; > for(int i = 0; i<modelo.getColumnCou nt(); i++){ > columna = tabla.getColumnMode l().getColumn( i); > if(i==0){ > columna.setPreferre dWidth(70) ; > }if(i==1){ > columna.setPreferre dWidth(140) ; > } > } > } > public void valueChanged( ListSelectionEve nt e){ > if(e.getValueIsAdju sting()) > return; > if( e.getSource( ) == tabla.getSelectionM odel()){ > // obtener el data model > TableModelProveedor es model = (TableModelProveedo > res)tabla. getModel( ); > // Determinar el selected item > int row = tabla.getSelectedRo w(); > codigo = model.getCodAt( row); > } > } > public void actionPerformed( ActionEvent e) { > if(e.getSource( )== jButtonSalir) { > dispose(); > } > if(e.getSource( )== jButtonAgregar) { > IngresoProveedor ins = new IngresoProveedor( ); > ins.setVisible( true); > } > if(e.getSource( )== jButtonEliminar) { > //AvisoEliminaMater ial ins = new AvisoEliminaMateria > l(codigo) ; > //ins.setVisible( true); > } > if(e.getSource( )== jButtonActualiza) { > try{ > log = new Facade(0); > Iterator itera = log.listarMateriale s(0); > vecBanco = new Vector(); > while(itera. hasNext() ){ > Material cli = (Material)itera. next(); > vecBanco.addElement (cli);//el table model recibe un > vector, no un iterator > } > }catch(Exception ex){ > JOptionPane. showMessageDialo g(this,ex. getMessage( > ),"Error" ,JOptionPane. ERROR_MESSAGE) ; > } > //modelo = new TableModelMateriale s(vecBanco) ; > tabla = new JTable(modelo) ; > //tabla.setSelectio nMode(ListSelect ionModel. > SINGLE_SELECTION ); > //mod = tabla.getSelectionM odel(); > //mod.addListSelect ionListener( this); > //parte grafica > JScrollPane scrollPane = new JScrollPane( tabla); > lista.add(scrollPan e); > scrollPane.setBound s(7, 7, 826, 385); > } > if(e.getSource( )==jButtonModifi ca ){ > //ModificaMaterial ins = new ModificaMaterial( codigo); > //ins.setVisible( true); > } > } > } > > > desde ya muchas gracias > > > > > > Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá > tu nueva Tarjeta de crédito. De tu PC directo a tu casa. > Visitá www.tuprimeratarjet a.com.ar > > > > > > > ¡Capacidad ilimitada de almacenamiento en tu correo! > No te preocupes más por el espacio de tu cuenta con Correo > Yahoo!: > http://correo. espanol.yahoo. com/ > > > > > > Yahoo! Encuentros > Ahora encontrar pareja es mucho más fácil, probá el > nuevo Yahoo! Encuentros. > Visitá http://yahoo. cupidovirtual. com/servlet/ > NewRegistration > > > > > ____________________________________________________________________________________ > Yahoo! Deportes Beta > ¡No te pierdas lo último sobre el torneo clausura 2008! > Entérate aquí http://deportes.yahoo.com Yahoo! Encuentros. Ahora encontrar pareja es mucho más fácil, probá el nuevo Yahoo! Encuentros http://yahoo.cupidovirtual.com/servlet/NewRegistration