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:
para declarar mi modelo de la tablaDefaultTableModel 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 que mi codigo me ponga los encabezados id, nombre y telefono lo hago mediante una consulta y realizo el ciclo
Código:
este funciona siempre y cuando el primer registro de la tabla que puse contenga un valor, si mi consulta me muestra estowhile (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 }
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:
si alguien puede ayudarme se lo agradecere infinitamentemodelotable.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); }
gracias