Java - Applets quien sabe corregir esto

 
Vista:

Applets quien sabe corregir esto

Publicado por Andres (39 intervenciones) el 16/02/2007 17:41:41
es solo una duda sobre este algoritmo........esta en java..y CORRE pero por ejemplo, le doy la opcion uno y me muestra un dibujo, le doy la opcion 2 o 3 y me muestra el otro dibujo.,,, y despues....ya no funciona....no muestra nada...QUE PASARA::::

LES RUEGO PLEASE QUE ME AYUDEN QUE ES PARA UN TRABAJO QUE ENTREGAR:::
!PEGENLO Y PRUEBENLO PORFA!!!!!

import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class Cuadrado1 extends Applet {
int eleccion=0;
String entrada="";
public void init() {

entrada=JOptionPane.showInputDialog(
"DIGITE LA OPCION DESEADA\n 1.Dibujar Lineas\n "+
"2.Dibujar Rectangulos\n"+
"3.Dibujar Circulos\n");

eleccion=Integer.parseInt(entrada);



}//Fin metodo Init
public void paint(Graphics g) {
{

super.paint(g);


while (eleccion!=-1)
{

for (int i=1;i<=10;i++)
{
switch(eleccion){

case 1:
g.drawLine(20,20,60,i*10);
break;

case 2:
g.drawRect(10+i*10,10+i*10,50+i*10,50+i*10);
break;

case 3:
g.drawOval(10+i*10,10+i*10,50+i*10,50+i*10);
break;

default: g.drawString("Se escribio un valor incorrecto",10,20+i*15);
}//fin switch

}//fin for

entrada=JOptionPane.showInputDialog(
"DIGITE LA OPCION DESEADA\n 1.Dibujar Lineas\n "+
"2.Dibujar Rectangulos\n"+
"3.Dibujar Circulos\n");

eleccion=Integer.parseInt(entrada);

g.clearRect(0,0,this.getSize().width,this.getSize().height);




}//fin del while
}

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Applets quien sabe corregir esto

Publicado por Gilberto (378 intervenciones) el 17/02/2007 16:43:10
No lo he probado, pero pienso que el problema es que has puesto la lógica de ejecución en el método paint, cuando debes hacerlo fuera de este y dejarle sólo su función, que es dibujar, así que te sugiero que implementes un Thread donde sigas la lógica de la entada del usuario, y de allí invoques para paint la opción adecuada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Applets quien sabe corregir esto

Publicado por Gilberto (378 intervenciones) el 17/02/2007 19:00:59
import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class Cuadrado1 extends Applet implements Runnable {

int eleccion=0;
String entrada="";
Thread thread;

public void init() {
if(thread == null) {
thread = new Thread(this,"ThreadCuadrado");
thread.start();
}
}

public void paint(Graphics g) {
super.paint(g);
g.clearRect(0,0,this.getSize().width,this.getSize().height);
for (int i=1;i<=10;i++)
{
switch(eleccion){
case 1: g.drawLine(20,20,60,i*10);
break;
case 2: g.drawRect(10+i*10,10+i*10,50+i*10,50+i*10);
break;
case 3: g.drawOval(10+i*10,10+i*10,50+i*10,50+i*10);
break;
}
}
}

public void run() {
while(eleccion != -1) {
try{
entrada=JOptionPane.showInputDialog(
"DIGITE LA OPCION DESEADA\n 1.Dibujar Lineas\n "+
"2.Dibujar Rectangulos\n"+
"3.Dibujar Circulos\n");
eleccion=Integer.parseInt(entrada);
if(eleccion>=1 && eleccion<=3) repaint();
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(this,"Formato numérico erroneo","Error",JOptionPane.ERROR_MESSAGE);
}
}
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar