Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Lu15_CL4 en 18 Abril 2008, 04:50 am



Título: JTable... como agregar filas en tiempo de ejecucion
Publicado por: Lu15_CL4 en 18 Abril 2008, 04:50 am
como agregar filas en tiempo de ejecucion??, trae una funcion para las columnas ej:

JTable tabla=new JTable(modelo);
tabla.addColumn(una columna);

pero no trae ninguna para filas!, la idea es teclear algo en una fila luego dar enter y si estoy en la ultima fila dela tabla que se cree una nueva fila para insertar datos.

hace mucho haciendo un proyecto de la escuela(un compilador =o, mostrar la tabla de simbolos, =O) tuve la misma duda y no la solucione lo que hize fue dejar la tabla con las filas que le predefinia el modelo, pero usando filas de mas(reserve 500...), eso no me gusto... plx help


Título: Re: JTable... como agregar filas en tiempo de ejecucion
Publicado por: sapito169 en 19 Abril 2008, 19:15 pm
deseguro estabas buscando addFila pero todo eso es en ingles
"fila=row"

tablitalol.addRow(); :laugh: :laugh: :laugh: :laugh:


Título: Re: JTable... como agregar filas en tiempo de ejecucion
Publicado por: Lu15_CL4 en 20 Abril 2008, 09:20 am
si sabia que row es fila..., pero eso que pusiste no funciona, lo mas parecido a eso que aparece es addRowSelectionInterval(intervalo)

U_u


Título: Re: JTable... como agregar filas en tiempo de ejecucion
Publicado por: Sk9ITk5Z en 16 Mayo 2008, 21:34 pm
Puedes hacerle de esat forma:
while (resultado.next())
               {
                 
                 Object [] fila = new Object[columnNum];
                 for (int i=0;i<3;i++){
                      fila = resultado.getObject(i+1);
                      modelo.addRow(fila);
                 }
           }

Si tiens duda comentala....


Título: Re: JTable... como agregar filas en tiempo de ejecucion
Publicado por: Lu15_CL4 en 23 Mayo 2008, 19:27 pm
Puedes hacerle de esat forma:
while (resultado.next())
               {
                 
                 Object [] fila = new Object[columnNum];
                 for (int i=0;i<3;i++){
                      fila = resultado.getObject(i+1);
                      modelo.addRow(fila);
                 }
           }

Si tiens duda comentala....

jeje, ps como pusiste "resultado.next()" supongo que sabes lo que ando asiendo ^^, el problema que tengo es que esa linea que puse en negritas no me funciona, esto es pork la funcion "addRow()" no me sale en la lista de metodos del modelo ni del JTable..
lo solucione asi:

Código:
        Object[][] m=new Object[Tabla.getRowCount()+1][Tabla.getColumnCount()];
        for(int i=0;i<Tabla.getColumnCount();i++)
            for(int j=0;j<Tabla.getRowCount();j++)
                m[j][i]=Tabla.getValueAt(j, i);
        Tabla.setModel(new DefaultTableModel(m,new String[]{"columna_1", "columna_2"}));

la parte de llenarlo (que es lo que hace tu codigo ^^) asi:

Código:
ResultSet r = stat.executeQuery("select * from Tabla");
    r.last();
    Object[][] m=new Object[r.getRow()][2];
    int i=0;
    r.first();
    while(r.next()){
        m[i][0]=r.getObject("columna_1");
        m[i][1]=r.getObject("columna_2");
        i++;
    }
    Tabla.setModel(new DefaultTableModel(m,new String[]{"columna_1", "columna_2"}));
   
}

gracias! ^^


Título: Re: JTable... como agregar filas en tiempo de ejecucion
Publicado por: Sk9ITk5Z en 29 Mayo 2008, 21:45 pm
Yo tenia el mismo problema que tu pero mejor le cambie el jTExt Area apr imprimir lso datos y me funciono bien, lo unico que si tienes que hacer es que Debes ordenar bien a la hora de imprimir los datos... te dejo el codigo par que lo analices...Nota: no te confundas con el swith yo lo utilize por que tengo 3 tablas en mi bd y lo puse para saber cual estoy accesando...
 for (int i = 0; i < numeroColumnas; i++)
              {
                 // Nuevamente, para ResultSetMetaData la primera columna es la 1.
                 etiquetas = metaDatos.getColumnLabel(i + 1);
               }     
        //*****************METERLE LO  DATOS*********************************
            for(int t=0;t<numeroColumnas;t++){
              jTextArea1.setText(jTextArea1.getText() + etiquetas[t].toString() + "              ");
            }
           jTextArea1.setText(jTextArea1.getText() +'\n');
     switch (selecciono)  {
     
     
   
    case 1: 
          while (resultado.next()) {
                    String s = resultado.getString(etiquetas[0].toString());
                    String g = resultado.getString(etiquetas[1].toString());
                    String j = resultado.getString(etiquetas[2].toString());
                    jTextArea1.setText( jTextArea1.getText() + s + "                              " + g + "                    " + j + '\n' );
                  }
         break;
    case 2:     
          while (resultado.next()) {
                    String s = resultado.getString(etiquetas[0].toString());
                    String g = resultado.getString(etiquetas[1].toString());
                    int j = resultado.getInt(etiquetas[2].toString());
                    int e = resultado.getInt(etiquetas[3].toString());
                    String o = resultado.getString(etiquetas[4].toString());
                    jTextArea1.setText( jTextArea1.getText() + s + "               " + g + "                                         " + j + "                          "+ e + "                      " + o + '\n' );
                  }
         break;
      case 3:     
           while (resultado.next()) {
                    String s = resultado.getString(etiquetas[0].toString());
                    String g = resultado.getString(etiquetas[1].toString());
                    int j = resultado.getInt(etiquetas[2].toString());
                    jTextArea1.setText( jTextArea1.getText() + s + "                             " + g + "                      " + j +'\n' );
                  }
        break;   


Título: Re: JTable... como agregar filas en tiempo de ejecucion
Publicado por: Lu15_CL4 en 31 Mayo 2008, 03:17 am
O_Ok!
pero creo que seria un reverendo desmadre sacar un dato de eso xD, mejor me quedo con las tablas  ;)

cya!