Foros del Web » Programación para mayores de 30 ;) » Java »

ayuda con tabla dinamica

Estas en el tema de ayuda con tabla dinamica en el foro de Java en Foros del Web. tengo una consulta en un base de datos que me trae unos campos parecidos a esta tabla id nombre telefono 1 juan 12123 2 beto ...
  #1 (permalink)  
Antiguo 07/12/2010, 09:23
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Pregunta ayuda con tabla dinamica

tengo una consulta en un base de datos que me trae unos campos parecidos a esta tabla

id nombre telefono
1 juan 12123
2 beto 36368
3 pepe
4 lupe 45343

cuando genero mi jtable dinamico si me pone la tabla tal cual como la muestro, uso este codigo

Código:
DefaultTableModel modelotable = new DefaultTableModel() {

@Override
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}

@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
};
para declarar mi modelo de la tabla

para que mi codigo me ponga los encabezados id, nombre y telefono lo hago mediante una consulta y realizo el ciclo

Código:
while (rs.next()) {
if(band==false){///esta linea la ocupo para que solo me recorra la consulta y me genere mis encabezados 

id=rs.getString("id");
nombre=rs.getString("nombre");
telefono=rs.getString("telefono");

modelotable.addColumn("ID");//asigno a mi columna el encabezado que mostrara
  count2=count2+1; 

//la idea es q si todos los valores de una de mis columnas 
//son espacios en blanco no me muestre ese encabezado

     if(               !nombre.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("nombre");
  }
  if(               !telefono.equals(" ")){
      count2=count2+1;
modelotable.addColumn("telefono");
  }
}
jTable1.setModel(modelotable);//le agrego las columnas a mi jtable

Object[] linea = new Object[count2]; 
linea[count] ="0000"+ rs.getObject("id_rel_etiqueta");

 count=count+1;
 if(           !nombre.equals(" ")){
      linea[count] = rs.getObject("nombre");
      count=count+1;
 }
 if(            !telefono.equals(" ")){
     linea[count] = rs.getObject("telefono");
     count=count+1;
   }
modelotable.addRow(linea);//agrego mis filas a  modelo table
jTable1.setModel(modelotable);//inserto las filas en mi jtable
}
este funciona siempre y cuando el primer registro de la tabla que puse contenga un valor, si mi consulta me muestra esto

id nombre telefono
1 juan
2 beto 36368
3 pepe
4 lupe 45343

mi programa en java me va a mostrar

id nombre
1 juan
2 beto
3 pepe
4 lupe

aunq el nombre beto y lupe contengan telefono

como puedo hacer para que me respete los espacios en blanco si es q por lo menos un registro contiene valor?


lo de arriba es solo un ejemplo para que resulte mas facil de comprender o por lo menos eso intente

anexo mi codigo original

Código:
modelotable.setColumnCount(0);
modelotable.setRowCount(0);
  count=0;
  count2=0;
et=     (String) jComboBox1.getSelectedItem();
band=false;
try {
        Class.forName("com.mysql.jdbc.Driver");
            conexion = DriverManager.getConnection("jdbc:mysql://localhost/etiquetas", "root", "");
             st = conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
             rs = st.executeQuery("");//mi consulta
             while (rs.next()) {
                    if(band==false){
  pap=rs.getString("id_rel_pa_et");
  item=rs.getString("item");
  desc=rs.getString("descripcion");
  desc_f=rs.getString("descripcion_f");
  desc_esp=rs.getString("descripcion_esp");
  qty=rs.getString("qty");
  cus=rs.getString("customer_num");
  cust_n=rs.getString("customer_name");
  sup=rs.getString("suplier");
  country=rs.getString("country_origin");
  bc=rs.getString("codigo_barras");
   country2=rs.getString("country2");
  iden=rs.getString("identifier");
  rev=rs.getString("revision");
  code=rs.getString("code");
  dig=rs.getString("digit");
  gr=rs.getString("grupo");
  let=rs.getString("letra");
 id_rel=rs.getInt("id_relacion");
 
 Class.forName("com.mysql.jdbc.Driver");
            conexion2 = DriverManager.getConnection("jdbc:mysql://localhost/etiquetas", "root", "");
             st2 = conexion2.createStatement();
             rs2 = st2.executeQuery("");//mi consulta
             rs2.first();            
             rel=rs2.getString("relacion");
             st2.close();
  //agregar colums
  modelotable.addColumn("ID");
  count2=count2+1;
   if(               !let.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("ITEM");
 }

  if(               !item.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("ITEM_NO");
  }
  if(               !desc.equals(" ")){
      count2=count2+1;
modelotable.addColumn("DESCRIPCIÓN");
  }
  if(               !desc_f.equals(" ")){
      count2=count2+1;
modelotable.addColumn("DESCRIPCIÓN FRANCES");
  }
  if(               !desc_esp.equals(" ")){
      count2=count2+1;
modelotable.addColumn("DESCRIPCIÓN ESPAÑOL");
  }
  if(               !qty.equals(" ")){
      count2=count2+1;
   modelotable.addColumn("qty");
  }
  if(               !cus.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("CUSTOMER_NO");
  }
  if(               !cust_n.equals(" ")){
      count2=count2+1;
 modelotable.addColumn("CUSTOMER NAME");
  }
  if(               !sup.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("SUPLIER");
  }
  if(               !country.equals(" ")){
      count2=count2+1;
   modelotable.addColumn("COUNTRY_OF_ORIGIN");
  }
  if(               !bc.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("Barcode");
  }   
  if(               !country2.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("COUNTRY");
 }
  if(               !iden.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("IDENTIFIER");
 }
  if(               !rev.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("REVISION");
}
  if(               !code.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("CODE");
}
  if(               !dig.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("DIGIT");
  }
  if(               !gr.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("GRUPO");
  }
 
  if(               !rel.equals(" ")){
      count2=count2+1;
  modelotable.addColumn("RELACION");
  }
  jTable1.setModel(modelotable);
                   band=true; }
  id_rel=rs.getInt("id_relacion");
 Class.forName("com.mysql.jdbc.Driver");
            conexion2 = DriverManager.getConnection("jdbc:mysql://localhost/etiquetas", "root", "");
             st2 = conexion2.createStatement();
             rs2 = st2.executeQuery("");//mi consulta
             rs2.first();
             rel=rs2.getString("relacion");
             st2.close();
//agregar rows
 Object[] linea = new Object[count2];

linea[count] ="0000"+ rs.getObject("id_rel_etiqueta");

 count=count+1;
 if(           !let.equals(" ")){
      linea[count] = rs.getObject("letra");
      count=count+1;
 }
 if(            !item.equals(" ")){
     linea[count] = rs.getObject("item");
     count=count+1;
   }
  if(           !desc.equals(" ")){
       linea[count] = rs.getObject("descripcion");
       count=count+1;
  }
  if(           !desc_f.equals(" ")){
       linea[count] = rs.getObject("descripcion_f");
       count=count+1;
  }
  if(           !desc_esp.equals(" ")){
       linea[count] = rs.getObject("descripcion_esp");
       count=count+1;
  }
  if(           !qty.equals(" ")){
      linea[count] = rs.getObject("qty");
      count=count+1;
     }
  if(           !cus.equals(" ")){
      linea[count] = rs.getObject("customer_num");
       count=count+1;
  }
  if(           !cust_n.equals(" ")){
      linea[count] = rs.getObject("customer_name");
      count=count+1;
  }
  if(           !sup.equals(" ")){
      linea[count] = rs.getObject("suplier");
        count=count+1;
  }
  if(           !country.equals(" ")){
      linea[count] = rs.getObject("country_origin");
      count=count+1;
  }
  if(           !bc.equals(" ")){
      linea[count] = rs.getObject("codigo_barras");
      count=count+1;
  }
 
  if(           !country2.equals(" ")){
      linea[count] = rs.getObject("country2");
       count=count+1;
 }
  if(           !iden.equals(" ")){
      linea[count] = rs.getObject("identifier");
      count=count+1;
 }
  if(           !rev.equals(" ")){
      linea[count] = rs.getObject("revision");
        count=count+1;
}
  if(           !code.equals(" ")){

      linea[count] = rs.getObject("code");
      count=count+1;
}
  if(           !dig.equals(" ")){
      linea[count] = rs.getObject("digit");
      count=count+1;
  }
  if(           !gr.equals(" ")){
      linea[count] = rs.getObject("grupo");
        count=count+1;
  }  
  if(           !rel.equals(" ")){
      linea[count] = rel;
       count=count+1;
  }
modelotable.addRow(linea);
jTable1.setModel(modelotable);
count=0;
            }st.close();
             jButton6.setEnabled(false);
                         jButton3.setEnabled(false);
               } catch (SQLException ex) {
            Logger.getLogger(datos_et.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(datos_et.class.getName()).log(Level.SEVERE, null, ex);
        }
si alguien puede ayudarme se lo agradecere infinitamente

gracias
  #2 (permalink)  
Antiguo 12/04/2011, 10:06
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: ayuda con tabla dinamica

solucionado, gracias

Etiquetas: dinamica, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:39.