Problema com o Switch e default

1 resposta
X

:oops: Primeiramente, parabens pelo site! pra mim caiu como uma luva e uma mao na roda!
Gostaria de uma ajuda quanto ao codigo abaixo, ele roda legal, ate o usuario digitar uma opcao invalida, ou seja uma numero != de 1 ou 2. Quando o numero e diferente entra uma caixa de dialogo informando. Ao clicar o Ok a caixa retorna varias vezes e o for nao termina e o programa nao fecha, já tentei fazer o contador receber 10 dentro da opcao default, mas nao deu certo. ???

import javax.swing.*
import java.awt.*;
public class Switch extends JApplet
{
   int escolha;
   public void init()
  { 
    String op;
    op = JOptionPane.showInputDialog("Digite 1 para desenhar linhas
"+
				     "Digite 2 para desenhar retangulos
");
    escolha = Integer.parseInt(op);
  }
  public void paint(Graphics g)
  {
    for(int i=0; i<10; i++)
     {
	switch(escolha)	
        {
          case 1: g.drawLine(10 + i,10 + i,25 + i,10 * i);
	          break;	
	  case 2: g.drawRect(10 + i,10 + i,25 + i,10 * i);
		  break;	
	  default: JOptionPane.showMessageDialog(null,"valor invalido");  	 }
     }
  }
}

1 Resposta

Paulo_Silveira

poxa, esse foi dificil de eu perceber, ja que eh sutil

o problema, eh que o Applet, sozinho, de tempos em tempos chama o metodo PAINT.

entao, mesmo voce acabando com o for para sempre, uma hora ele chama o paint denovo, e vai reinicializar o FOR

faz o seguinte, coloca o seu codigo que ta dentro do paint no init!

para voce pegar o Graphics, chama o this.getGraphics()

Criado 4 de outubro de 2002
Ultima resposta 4 de out. de 2002
Respostas 1
Participantes 2