Dica na label swing

5 respostas
R
queria imprimir um for... na mesma label... mas ela so mostra o ultimo resultado...
for (x = 0; x < 10; x = x + 1) {
            y = (jresultado - x) / j2;
            System.out.println("SE valor de x=" + x + " ENTAO valor de y=" + y);
           
            jTvalor.setText("SE valor de x=" + x + " ENTAO valor de y=" + y +"");
            
        }
usei o set location, mas aí só mostra o último resultado na última posição... alguma dica... por exemplo:
int a= (int)x;
 jTvalor.setLocation(45, (135+(a*15))  );

dicas?

5 Respostas

denisbenjamim

Boa Tarde, Use uma String para Concatenar o resultado.

String $Valor_jLabel = "";
        for (int x = 0; x &lt; 10; x = x + 1) {
             y = (jresultado - x) / j2;
             $Valor_jLabel += "SE valor de x=" + x + " ENTAO valor de y=" + y+"\n";
             System.out.print($Valor_jLabel);
       }
       jTvalor.setText( $Valor_jLabel );
ViniGodoy
  1. Não concatene Strings num for. A performance é péssima. No lugar, use um StringBuilder.
  2. Respeite as Java Code Conventions. Nomes de variável começam com letras minúsculas e sem simbolos especiais;
  3. Labels tem a mania de não respeitar o \n em muitos SOs, o ideal é usar HTML:

StringBuider sb = new StringBuilder("&lt;html&gt;&lt;body&gt;&quot;); for (int x = 0; x &lt; 10; x++) { y = (jresultado - x) / j2; sb.append(&quot;<p>SE valor de x=").append(x); sb.append(" ENTAO valor de y=").append(y); } jTvalor.setText( sb.toString() );

R

valeu, mas nao deu certo nao…

fiz assim…

if (x==0){ jTvalor.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==1){ jTvalor1.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==2){ jTvalor2.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==3){ jTvalor3.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==4){ jTvalor4.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==5){ jTvalor5.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==6){ jTvalor6.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==7){ jTvalor7.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==8){ jTvalor8.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==9){ jTvalor9.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);} if (x==10){ jTvalor10.setText("SE valor de x= " + x + " ENTAO valor de y=" + y);}

declarei varias labels e dentro do for, eu verifico se é a hora de imprimir a sentença certa… tem a imagem para conferir como ficou…

valeu… queria evitar de declarar varias labels, na verdade, era só isso… praticidade… e inteligencia… tb. mas nao deu.

agora estou com problema no float do fillOval, nao esta ficando preciso… sabe algo para ajudar, alguem aí?
pela imagem nota-se que alguns pontos estao na mesma linha, arredondados, e fica ruim assim. nesta nao, em outra.

R

segue o jar pronto.

falta o float dos graficos e valores negativos… help para float nos pontos? com fill OVal…

denisbenjamim
  1. Não concatene Strings num for. A performance é péssima. No lugar, use um StringBuilder.
  2. Respeite as Java Code Conventions. Nomes de variável começam com letras minúsculas e sem simbolos especiais;
  3. Labels tem a mania de não respeitar o \n em muitos SOs, o ideal é usar HTML:

StringBuider sb = new StringBuilder("&lt;html&gt;&lt;body&gt;&quot;); for (int x = 0; x &lt; 10; x++) { y = (jresultado - x) / j2; sb.append(&quot;<p>SE valor de x=").append(x); sb.append(" ENTAO valor de y=").append(y); } jTvalor.setText( sb.toString() );

Obrigado ViniGodoy , vou ler sobre Java Code Conventions

Criado 5 de abril de 2011
Ultima resposta 6 de abr. de 2011
Respostas 5
Participantes 3