Hola compañeros
Sucede que necesito hacer una representacion binaria de un numero en forma de "true" y "false" mostrando los bits que ocupa con JLabels y tengo que hacer que los Labels primero todos sean blancos y luego poner en amarillo los ceros que adicionan a la izquierda del numero binario es decir el numero 5 en binario es 101 pero como ocupa 8 bits quedaria 00000101 <---- esto iria en labels pero true y false pero me surgen dos problemas y es que cuando trato de cambiar el color de esta forma
private void crearJLBinarios(int index,String numero){
String binario=this.mySistemaBinario.getNumeroBinario(index);
javax.swing.JFrame ventana=new JFrame("Representacion Binaria");
ventana.setVisible(true);
ventana.getContentPane().setLayout(new BorderLayout());
javax.swing.JLabel vecJL[]=new JLabel[binario.length()];
for (int i=0;i<vecJL.length;i++) {
Border borde;
borde=BorderFactory.createLineBorder(Color.BLACK);
javax.swing.JLabel mostrarBi=new JLabel();
if(binario.charAt(i)=='0'){
mostrarBi.setText("false");
}
else{
mostrarBi.setText("true");
}
mostrarBi.setBackground(new java.awt.Color(255, 255, 255));
mostrarBi.setBorder(borde);
vecJL[i]=mostrarBi;
vecJL[i].setBounds(100+i*50,150,100,30);
ventana.add(vecJL[i]);
}
}
y me queda el ultimo texto fuera del label y si agrego setOpaque(true); entonces me pone todo el panel en blanco :c adjunto imagenes para mas claridad
http://subefotos.com/ver/?2c3ae710a83eafc361413848db156b19o.png#codigos
http://subefotos.com/ver/?3f4494e798e9e9e88573c266c71fd533o.png#codigos
gracias de ante mano ;-) ;D
Bueno pude solucionar el problema que tenia anexo la solucion
private void crearJLBinarios(int index,String numero){
String binario=this.mySistemaBinario.getNumeroBinario(index);
JPanel contenedor=new JPanel(new GridLayout(1,0));
JFrame ventana=new JFrame("");
JLabel etiquetaNu=new JLabel("Nombre x "+numero.toString());
etiquetaNu.setBounds(10,40,500,50);
etiquetaNu.setFont(new Font("Arial",Font.BOLD,12));
ventana.getContentPane().add(etiquetaNu);
JLabel etiquetaBi=new JLabel("nombre x"+binario.toString());
etiquetaBi.setBounds(10,150,500,50);
etiquetaBi.setFont(new Font("Arial",Font.BOLD,12));
ventana.getContentPane().add(etiquetaBi);
//No se pero si no lo agrego me muestra uno solo de los de arriba
JLabel jj=new JLabel("");
ventana.getContentPane().add(jj);
ventana.getContentPane().setBackground(new Color(234,234,243));
ventana.getContentPane().add(contenedor);
contenedor.setBackground(new Color(234,234,243));
ventana.getContentPane().setLayout(new BorderLayout());
JLabel vecJL[]=new JLabel[binario.length()];
for (int i=0;i<vecJL.length;i++) {
Border borde;
borde=BorderFactory.createLineBorder(Color.BLACK);
JLabel mostrarBi=new JLabel();
if(binario.charAt(i)=='0'){
mostrarBi.setText("False");
}
else{
mostrarBi.setText("True");
}
mostrarBi.setBackground(java.awt.Color.WHITE);
mostrarBi.setBorder(borde);
mostrarBi.setOpaque(true);
vecJL[i]=mostrarBi;
if(binario.length()>50){
contenedor.setBounds(1,100,120+i*25,25);
}else{
contenedor.setBounds(1,100,410+i*25,25);
}
contenedor.add(vecJL[i]);
}
pintarJLBinarios(vecJL);
ventana.setVisible(true);
contenedor.setVisible(true);
ventana.setSize(600,400);
}
El mensaje 'Problema con JLabel con setBackground y setText (http://foro.elhacker.net/index.php?topic=399660)' fue bloqueado
Thread resuelto.
Leer reglas:
http://foro.elhacker.net/reglas