2011-11-28 8 views
5

no soy capaz de ver las etiquetas que se crean dynamically.The código es el siguiente:JLabel no gama visible en netbeans al crear dinámicamente

JLabel[] labels = new javax.swing.JLabel[cur.length]; 
for (int i = 0 ;i < cur.length; i++) 
{ 
    System.out.println("in"); 
    labels[i] = new JLabel(cur[i]); 
    labels[i].setText(""+cur[i]); 
    jPanel1.add(labels[i]); 
    this.setVisible(true); 
    } 
} 
+1

1.) cambie this.setVisible para for loop. 2.) Intenta llamar a jPanel1.validate()/repaint() después de agregarle etiqueta. (Puede no ser necesario si mueves setVisible al final.) También hay un corchete de cierre adicional en el código publicado, por favor quítalo. –

+0

@HarryJoy thx .. – abc

Respuesta

4

Puede haber una o muchas de las causas de su problema
1. Su JPanel no se puede agregar al Contenedor. Agréguelo usando getContentPane(). Add (jpanel1);
2. Su JLabel en sí no está visible. Establezca su propiedad visible en verdadero.
3. Su JPanel no tiene flowlayout sino CardLayout y, por lo tanto, es posible que estén visibles en la parte posterior de otros componentes. Asigne el diseño utilizando jpanel1.setLayout (nuevo FlowLayout())
4. Cambie su this.setVisible (true) al bucle exterior.

+0

thx también me olvidé del segundo punto ... – abc

+2

* "Su JLabel en sí no es visible. Establezca su propiedad visible en verdadero." * Los componentes agregados a los contenedores son visibles por defecto. Entonces, no, esta no es la causa del problema. * "Tu JPanel no tiene flowlayout sino GridLayout." * Eso no haría ninguna diferencia aquí. Cualquiera de los diseños puede mostrar múltiples componentes. –

+0

Gracias. Me perdí para escribir "CardLayout" en lugar de GridLayout. Por favor vea mi punto editado no: 3 – NavSoft

0

Qué diseño ¿Le tienen para su objeto JPanel? intente cambiar su diseño para decir, FlowLayout. Dale el diseño al principio donde lo definiste y luego úsalo en tu ciclo.