Foro de elhacker.net

Programación => Java => Mensaje iniciado por: d!lan en 29 Septiembre 2013, 06:12 am



Título: Problema con JLabel con setBackground y setText
Publicado por: d!lan en 29 Septiembre 2013, 06:12 am
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
Código
  1. private void crearJLBinarios(int index,String numero){
  2.      String binario=this.mySistemaBinario.getNumeroBinario(index);
  3.      javax.swing.JFrame ventana=new JFrame("Representacion Binaria");
  4.      ventana.setVisible(true);
  5.      ventana.getContentPane().setLayout(new  BorderLayout());
  6.      javax.swing.JLabel vecJL[]=new JLabel[binario.length()];
  7.  
  8.        for (int i=0;i<vecJL.length;i++) {
  9.            Border borde;
  10.            borde=BorderFactory.createLineBorder(Color.BLACK);
  11.            javax.swing.JLabel mostrarBi=new JLabel();
  12.  
  13.            if(binario.charAt(i)=='0'){
  14.                mostrarBi.setText("false");
  15.            }
  16.            else{
  17.                mostrarBi.setText("true");
  18.            }
  19.            mostrarBi.setBackground(new java.awt.Color(255, 255, 255));
  20.            mostrarBi.setBorder(borde);
  21.  
  22.            vecJL[i]=mostrarBi;
  23.            vecJL[i].setBounds(100+i*50,150,100,30);
  24.            ventana.add(vecJL[i]);
  25.        }
  26.    }
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


Título: Re: Problema con JLabel con setBackground y setText
Publicado por: d!lan en 30 Septiembre 2013, 17:12 pm
Bueno pude solucionar el problema que tenia anexo la solucion

Código
  1. private void crearJLBinarios(int index,String numero){
  2.      String binario=this.mySistemaBinario.getNumeroBinario(index);
  3.      JPanel contenedor=new JPanel(new GridLayout(1,0));
  4.      JFrame ventana=new JFrame("");
  5.  
  6.      JLabel etiquetaNu=new JLabel("Nombre x "+numero.toString());
  7.      etiquetaNu.setBounds(10,40,500,50);
  8.      etiquetaNu.setFont(new Font("Arial",Font.BOLD,12));
  9.      ventana.getContentPane().add(etiquetaNu);
  10.  
  11.      JLabel etiquetaBi=new JLabel("nombre x"+binario.toString());
  12.      etiquetaBi.setBounds(10,150,500,50);
  13.      etiquetaBi.setFont(new Font("Arial",Font.BOLD,12));
  14.      ventana.getContentPane().add(etiquetaBi);
  15.  
  16.      //No se pero si no lo agrego me muestra uno solo de los de arriba
  17.      JLabel jj=new JLabel("");
  18.      ventana.getContentPane().add(jj);
  19.  
  20.      ventana.getContentPane().setBackground(new Color(234,234,243));
  21.      ventana.getContentPane().add(contenedor);
  22.      contenedor.setBackground(new Color(234,234,243));
  23.      ventana.getContentPane().setLayout(new  BorderLayout());
  24.      JLabel vecJL[]=new JLabel[binario.length()];
  25.  
  26.        for (int i=0;i<vecJL.length;i++) {
  27.            Border borde;
  28.            borde=BorderFactory.createLineBorder(Color.BLACK);
  29.            JLabel mostrarBi=new JLabel();
  30.  
  31.            if(binario.charAt(i)=='0'){
  32.                mostrarBi.setText("False");
  33.            }
  34.            else{
  35.                mostrarBi.setText("True");
  36.            }
  37.            mostrarBi.setBackground(java.awt.Color.WHITE);
  38.            mostrarBi.setBorder(borde);
  39.            mostrarBi.setOpaque(true);
  40.            vecJL[i]=mostrarBi;
  41.            if(binario.length()>50){
  42.                 contenedor.setBounds(1,100,120+i*25,25);
  43.            }else{
  44.                 contenedor.setBounds(1,100,410+i*25,25);
  45.            }
  46.            contenedor.add(vecJL[i]);
  47.        }
  48.        pintarJLBinarios(vecJL);
  49.        ventana.setVisible(true);
  50.        contenedor.setVisible(true);
  51.        ventana.setSize(600,400);
  52.    }


Título: Problema con JLabel con setBackground y setText
Publicado por: Debci en 30 Septiembre 2013, 21:38 pm
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