Como sair do loop no JOptionPane

0 respostas
F

1- Como eu faço para sair do loop no JOptionPane;

2- E Como posso fazer para incluir no case para que eu possa modificar a entrada dos dados na JOptionPane.

Ficarei imensamente grato pela ajuda de vc’s abaixo o código:

import net.java.games.jogl.GLCanvas;

import net.java.games.jogl.GLCapabilities;

import net.java.games.jogl.GLDrawableFactory;

import net.java.games.jogl.Animator;

import net.java.games.jogl.GL;

import net.java.games.jogl.GLEventListener;

import net.java.games.jogl.GLDrawable;
import java.awt.Frame;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent ;

import java.awt.event.<em>;

import javax.swing.</em>;

import java.awt.Container;

public class Segundo {

// construtor
 Segundo() {
   //Cria um canvas
   GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(new GLCapabilities()); 
   //Adiciona o listener ao canvas
   SegundoListener li = new SegundoListener ();
   canvas.addGLEventListener (li);
   canvas.addKeyListener (li);
   // Adiciona o listener ao canvas
   //canvas.addGLEventListener(new SegundoListener());
   //Ccria e configura um frame
   Frame f = new Frame("Segundo exemplo JOGL");
   f.setSize(400, 400);
   //Adiciona o canvas GL ao frame AWT 
   f.add(canvas);
   //Exibe
   f.setVisible(true);
   //teclado será ativado assim q entrar
   canvas.requestFocus();
   // Configura a janela para fechar o aplicativo 
   f.addWindowListener(new WindowAdapter()
    {
       public void windowClosing(WindowEvent e)
{

System.exit(0);

}

});

}
//cria o aplicativo com o desenho 
 public static void main(String[] args) {
   new Segundo();
 }

// Desenha um triângulo 
private void desenhaFigura(GL gl) {

[color="#444444"][color=red] int x1 = 0, y1 = 0 , x2 = 0, y2 = 0, y3 = 0;
String msg;

msg = JOptionPane.showInputDialog("Digite o ponto x1");
    x1 = Integer.parseInt(msg);
   
    msg = JOptionPane.showInputDialog("Digite o ponto y1");
    y1 = Integer.parseInt(msg);
    
    msg = JOptionPane.showInputDialog("Digite o ponto x2");
    x2 = Integer.parseInt(msg);
   
    msg = JOptionPane.showInputDialog("Digite o ponto y2");
    y2 = Integer.parseInt(msg);
   
    msg = JOptionPane.showInputDialog("Digite o ponto y3");
    y3 = Integer.parseInt(msg);     [/color][/color]
                   
   gl.glBegin(GL.GL_TRIANGLES);
   gl.glVertex2f(x1, y1); // -25 -25
   gl.glVertex2f(x2, y2); //  25 -25
   gl.glVertex2f( 0, y3); //   0  25
   gl.glEnd();
  

 
 }
 
    
 // Implementa a interface de eventos do GL e awt respectivamente 
 class SegundoListener implements GLEventListener, KeyListener {
   private double left, right, botton, top;
   
   public void setWindow(GL gl){
   	gl.glMatrixMode(GL.GL_PROJECTION);
    gl.glLoadIdentity();
    gl.glOrtho(left, right, botton, top,0,1);
   }
   
         
   // chamado uma vez quando o GL é inicializado 
   public void init(GLDrawable drawable) {
     left = -30; right = 30; botton = - 30; top = 30;
   	 
     GL gl = drawable.getGL ();
     gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //erasing color
     gl.glColor3f(1.0f, 1.0f, 1.0f); // drawing color
     
   }
         
   //chamado toda vez que o canvas precisar ser atualizado
   public void display(GLDrawable drawable) {
    
     GL gl = drawable.getGL();
     SetWindow(gl); //carrega a nova window
     gl.glClear(GL.GL_COLOR_BUFFER_BIT);// limpa a tela com a cor do gl clear color
    
     desenhaFigura(gl); //desenha a figura
     gl.glFlush(); //pede prioridade na atualização do desenho
     
   }
    private void SetWindow(GL gl){
   	 gl.glMatrixMode(GL.GL_PROJECTION); // define o padrão a ser trabalhado pela gl
     gl.glLoadIdentity(); // fixa a matrix multiplicando a matrix pela sua identidade
     gl.glOrtho(left, right, botton, top, 0, 1); //atualiza a window
   }
   
   // chamado toda vez que o tamanho da janela do aplicativo for alterado 
   public void reshape(GLDrawable drawable,int x,int y,int width, int height) {
     GL gl = drawable.getGL();
     gl.glViewport(0, 0, width, height);
     gl.glMatrixMode(GL.GL_PROJECTION);
     gl.glLoadIdentity();
     gl.glOrtho(-30, 30, -30, 30, 0, 1);
   }
   

   // chamado quando houver alteração no modo ou no dispositivo de exibição
   // não todo previsto mas não implementado no JOGL 
   // Deve existir para satisfazer a  definição da interface
   public void displayChanged(GLDrawable drawable,boolean modeChanged,boolean deviceChanged) 
   {
   }
   
   public void keyPressed (KeyEvent k) {} 
   public void keyReleased (KeyEvent k) {}
   public void keyTyped (KeyEvent k)
   {
   	  double Xc,Yc, l, a;
   	  
   	  Xc = (left + right)/2; //calcula o centro x
   	  l = right - left; //calcula a largura
   	  Yc = (top + botton)/2;//calcula o centro y
   	  a = top -botton; // calcula a altura
   	  
   	           
     switch(k.getKeyChar()){
      case '+':
       l*=0.95;
       a*=0.95;
       right = Xc +l/2; 
       left = Xc - l/2;
       botton = Yc - a/2;
       top =  Yc + a/2;

       System.out.println("Zoom +"); 
       
       break;
      case '-':
       l*=1.05;
       a*=1.05;
       right = Xc +l/2; 
       left = Xc - l/2;
       botton = Yc - a/2;
       top =  Yc + a/2;          	
      	
       System.out.println("Zoom -");
       break;
       case 'e':case'E': case'4':
      	right+=0.05*l;
      	left+=0.05*l;
      	System.out.println("esquerda");
      	break;
      	
      	case 'd':case'D': case'6':
      	right-=0.05*l;
      	left-=0.05*l;
      	System.out.println("direita");
      	break;
      	
      	case 'c':case'C': case'8':
      	top-=0.05*a;
      	botton-=0.05*a;
      	System.out.println("cima");
      	break;
      	
      	case 'B':case'b':case'2':
      	top+=0.05*a;
      	botton+=0.05*a;
      	System.out.println("baixo");
      	break;
      	
      	[color="blue"]case 't':case 'T':case '1':
      
      	System.out.println("Modificar o triangulo");
      	break;
      	[/color]
      	case KeyEvent.VK_ESCAPE:
       System.exit(0);
       

     }
GLCanvas canvas = (GLCanvas)k.getSource(); // retorna o objeto de interface associado a ocorrencia do evento.

canvas.display();

}
}

}
[color=“red”][/color][color="#444444"][/color]

Criado 13 de abril de 2007
Respostas 0
Participantes 1