Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

miércoles, 24 de marzo de 2010

Uso de tablas JTable. Crear, añadir y modificar.

Codigo:
  1. import javax.swing.*;
  2. import javax.swing.table.DefaultTableModel;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. ..public class Main extends JFrame {
  6. ....public Main() {
  7. ....Object[][] datos = {
  8. ......{"Juan", new Integer(25), new Boolean(false)},
  9. ......{"Sonia", new Integer(33), new Boolean(true) },
  10. ......{"Pedro", new Integer(42), new Boolean(false)},
  11. ....};
  12. ....String[] columnNames = {"Nombre","Años","Apto",};
  13. ...DefaultTableModel dtm= new DefaultTableModel(datos,columnNames);
  14. ....final JTable table = new JTable(dtm);
  15. // Agregar nueva columna
  16. ....String[] columnaNueva1= {"vago","diestro","normal",};
  17. ....dtm.addColumn("Tipo",columnaNueva1);
  18. // Agregar nueva fila
  19. ....Object[] newRow={"Maria",new Integer(55),new Boolean(false)};
  20. ....dtm.addRow(newRow);
  21. // Modificar celda especifica
  22. ....dtm.setValueAt("XXX", 3, 3); // Row/Col
  23. ....table.setPreferredScrollableViewportSize(new Dimension(250, 100));
  24. ....JScrollPane scrollPane = new JScrollPane(table);
  25. ....getContentPane().add(scrollPane, BorderLayout.CENTER);
  26. ....addWindowListener(new WindowAdapter() {
  27. ......public void windowClosing(WindowEvent e){System.exit(0);}
  28. ....});
  29. ..}
  30. ..public static void main(String[] args) {
  31. ....Main frame = new Main();
  32. ....frame.pack();
  33. ....frame.setVisible(true);
  34. ..}
  35. }

Resultado:

14 comentarios:

  1. Muy bueno a mi me sirvio de mucho

    ResponderEliminar
    Respuestas
    1. por favor ayudenmee!!! necesito mostrar en la tabla una consulta que hago al insertar una patente de auto en el texfield, que me la muestre en la jtable.... como lo hago?

      Eliminar
    2. tu gfa a mi no me sirvio

      Eliminar
  2. ¿Como modificar el nombre de tus columnas, pero sin utilizar ningún vector?

    ResponderEliminar
  3. Una forma de hacerlo (no se si existan más formas :D ) se hace de la siguiente manera:

    Lo primero que tenemos que hacer es obtener el header utilizado por la tabla, luego el modelo y por último la columna pasándole como argumento el numero de la misma.

    JTableHeader th=jTable1.getTableHeader();
    TableColumnModel tcm=th.getColumnModel();
    TableColumn tc=tcm.getColumn(0);
    tc.setHeaderValue("Nueva Cadena");
    th.repaint();


    Fuente: http://miuniversodigital.com/2012/01/como-cambiar-los-nombres-de-las-columnas-en-un-jtable/

    a esto le puedo agregar que después de llamar al método repaint no deberías llamar al método setColumnCount del modelo de la tabla porque los nombres de las columnas vuelven como estaban inicialmente.

    ResponderEliminar
  4. Cómo hago para mover el JTable a determinado lugar?

    ResponderEliminar
  5. quie me ayuda . empiezo a programar en java y no se nada:
    facebook; LeGianna

    ResponderEliminar
  6. como puedo agregar mas de una tabla ayudenme porfavor soy nuevo en esto

    ResponderEliminar
  7. como puedo poner mas de una tabla porfa manden codigo esque nose nada de programacion apenas estoy comenzando

    ResponderEliminar
  8. ¿Cómo hacer para que el usuario edite los nombres de las columnas a su gusto? ¡¡AYUDA, POR FAVOR!!

    ResponderEliminar
  9. me podrían ayudar a organizar las tablas de menor a mayor cuando utilizo id

    ResponderEliminar
  10. me podrían ayudar a organizar las tablas de menor a mayor cuando utilizo id

    ResponderEliminar

Con la tecnología de Blogger.