Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/09/2011, 13:19
Avatar de farfamorA
farfamorA
 
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: ¿como añado filas a un jTable creado desde Diseño?

Efectivamente, tienes que crear un diseño. Acá un ejemplo de un JTable en un JFrame creado desde el panel de diseño e NetBeans con las funciones de agregar y eliminar filas.
Código Java:
Ver original
  1. import java.awt.Toolkit;
  2. import javax.swing.table.DefaultTableModel;
  3.  
  4. public class ViewTable extends javax.swing.JFrame {
  5.  
  6.     //Creamos un nuevo modelo para la tabla
  7.     DefaultTableModel defaultTableModel = new DefaultTableModel();
  8.  
  9.     /** Creates new form ViewTable */
  10.     public ViewTable() {
  11.         initComponents();
  12.         jTable1.setModel(defaultTableModel);
  13.         defaultTableModel.addColumn("Codigo");
  14.         defaultTableModel.addColumn("Nombre");
  15.     }
  16.  
  17.     /** This method is called from within the constructor to
  18.      * initialize the form.
  19.      * WARNING: Do NOT modify this code. The content of this method is
  20.      * always regenerated by the Form Editor.
  21.      */
  22.     @SuppressWarnings("unchecked")
  23.     // <editor-fold defaultstate="collapsed" desc="Generated Code">
  24.     private void initComponents() {
  25.  
  26.         jScrollPane1 = new javax.swing.JScrollPane();
  27.         jTable1 = new javax.swing.JTable();
  28.         jButton1 = new javax.swing.JButton();
  29.         jButton2 = new javax.swing.JButton();
  30.  
  31.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  32.  
  33.         jTable1.setModel(new javax.swing.table.DefaultTableModel(
  34.             new Object [][] {
  35.  
  36.             },
  37.             new String [] {
  38.  
  39.             }
  40.         ));
  41.         jScrollPane1.setViewportView(jTable1);
  42.  
  43.         getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
  44.  
  45.         jButton1.setText("Quitar");
  46.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  47.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  48.                 jButton1ActionPerformed(evt);
  49.             }
  50.         });
  51.         getContentPane().add(jButton1, java.awt.BorderLayout.PAGE_END);
  52.  
  53.         jButton2.setText("Agregar");
  54.         jButton2.addActionListener(new java.awt.event.ActionListener() {
  55.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  56.                 jButton2ActionPerformed(evt);
  57.             }
  58.         });
  59.         getContentPane().add(jButton2, java.awt.BorderLayout.PAGE_START);
  60.  
  61.         pack();
  62.     }// </editor-fold>
  63.  
  64.     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
  65.         // TODO add your handling code here:
  66.         defaultTableModel.addRow(new Object[]{"", ""});
  67.         seleccionarFila(jTable1.getRowCount());
  68.     }
  69.  
  70.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  71.         // TODO add your handling code here:
  72.         int filaSeleccionada = jTable1.getSelectedRow();
  73.         if (filaSeleccionada > -1 && filaSeleccionada <jTable1.getRowCount()){
  74.             defaultTableModel.removeRow(filaSeleccionada);
  75.             seleccionarFila(filaSeleccionada);
  76.         }
  77.         else
  78.             Toolkit.getDefaultToolkit().beep();
  79.     }
  80.  
  81.     /**
  82.     * @param args the command line arguments
  83.     */
  84.     public static void main(String args[]) {
  85.         java.awt.EventQueue.invokeLater(new Runnable() {
  86.             public void run() {
  87.                 new ViewTable().setVisible(true);
  88.             }
  89.         });
  90.     }
  91.  
  92.     // Variables declaration - do not modify
  93.     private javax.swing.JButton jButton1;
  94.     private javax.swing.JButton jButton2;
  95.     private javax.swing.JScrollPane jScrollPane1;
  96.     private javax.swing.JTable jTable1;
  97.     // End of variables declaration
  98.  
  99.     private void seleccionarFila(int filaEliminada) {
  100.         int filas = jTable1.getRowCount();
  101.         if ( filas == 1 )
  102.             jTable1.setRowSelectionInterval(0, 0);
  103.         else if (filas > 1)
  104.             jTable1.setRowSelectionInterval(filaEliminada-1, filaEliminada-1);
  105.     }
  106.  
  107. }

Presta especial atención a las líneas de código 12, 13 y 14. Ahí se le está asignando un modelo a la tabla, y luego se le agregan dos columnas. En las líneas 64 y 70, se muestran los métodos utilizados para agregar y eliminar filas. Nota que las filas se agregan/quitan al modelo de la tabla, no a la tabla.