Título: Demasiado rápido Publicado por: DanFire en 17 Junio 2012, 18:59 pm Hola,
he hecho el siguiente código con eclipse cuya función es la de mostrar aleatoriamente colores en cuartos de venta cada x segundos. Pero va tan rápido que los muestra todos a la vez. ¿Alguien podría ayudarme? (soy novato lo habréis notado por la penosa calidad del código) import java.awt.AWTException; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Robot; import javax.management.relation.Role; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class quenivelquieres extends JFrame { private static final long serialVersionUID = 8585544783492126617L; public static quenivelquieres app; public static final int APP_WIDTH = 500; public static final int APP_HEIGHT = 500; private JMenuBar Barra; private JMenu Archivo; private JMenuItem salir; public static void main(String[] args) { app = new quenivelquieres (); app.show(); } public void paint(Graphics gfx) { setLayout(null); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); Barra = new JMenuBar(); Archivo = new JMenu ("Archivo"); Barra.add(Archivo); salir = new JMenuItem ("Salir"); Archivo.add(salir); salir.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evento ){ System.exit( 0 ); } } ); this.setJMenuBar(Barra); setVisible(true); Container workArea = this.getContentPane(); Graphics workAreaGfx = workArea.getGraphics(); int z = 0; while (z<1000){ int x = (int) (Math.random()*10+1); if(x==5){x= x-1;} if(x==6){x= x-3;}//3 if(x==7){x= x-5;}//2 if(x==8){x= x-7;}//1 if(x==9){x= x-5;}//4 if(x==10){x= x-9;}//1 if(x==1){ workAreaGfx.setColor(Color.blue); int width = workArea.getWidth(); int height = workArea.getHeight(); workAreaGfx.fillRect(0,0, width/2, height/2);} if(x==2){ workAreaGfx.setColor(Color.red); int width = workArea.getWidth(); int height = workArea.getHeight(); workAreaGfx.fillRect(250,250, width,height);} if(x==3){ workAreaGfx.setColor(Color.yellow); int width = workArea.getWidth(); int height = workArea.getHeight(); workAreaGfx.fillRect(250,0, width/2, height/2);} if(x==4){ workAreaGfx.setColor(Color.green); int width = workArea.getWidth(); int height = workArea.getHeight(); workAreaGfx.fillRect(0,250, width/2, height/2);} z+=1; this.setSize(APP_WIDTH, APP_HEIGHT); this.setTitle("Dale al Azúl"); } } Título: Re: Demasiado rápido Publicado por: DanFire en 17 Junio 2012, 19:48 pm Porfavor ayudarme :huh: que es para clase....
Título: Re: Demasiado rápido Publicado por: Proteus1989 en 17 Junio 2012, 20:51 pm Thread.sleep(500);
Eso hace que el programa se duerma medio segundo antes de seguir. Título: Re: Demasiado rápido Publicado por: DanFire en 17 Junio 2012, 20:54 pm vale, gracias pero me dice de añadirle; Surround with try/catch. y no se como funciona... ni donde ponerlo
Título: Re: Demasiado rápido Publicado por: ollo en 17 Junio 2012, 21:19 pm la estructura del bloque try catch es:
Código: try{ Título: Re: Demasiado rápido Publicado por: DanFire en 17 Junio 2012, 21:40 pm a que te refieres con añadido en la ultima edicion??
Título: Re: Demasiado rápido Publicado por: DanFire en 17 Junio 2012, 22:22 pm a que te refieres con añadido en la ultima edicion?? Título: Re: Demasiado rápido Publicado por: DanFire en 17 Junio 2012, 22:23 pm la estructura del bloque try catch es: Código: try{ Título: Re: Demasiado rápido Publicado por: Nortis en 17 Junio 2012, 22:52 pm Con eclipse si utilizas las una de las ultimas versiones se que al ponerte encima de una función que puede enviar excepciones te aparece al poner el ratón encima la opción de insertarlo y te lo inserta de forma automática. Sino también puedes poner try(no le des al espacio y presiona Ctrl + Barra_espaciadora) y te lo rellena solo, solo tienes que introducir la función dentro del 'try' Como indica DanFire
Título: Re: Demasiado rápido Publicado por: ollo en 18 Junio 2012, 10:23 am Citar a que te refieres con añadido en la ultima edicion?? Me refiero a la línea Thread.sleep(500);aunque no estoy seguro de que te pidan eso exactamente Título: Re: Demasiado rápido Publicado por: тαптяα en 18 Junio 2012, 10:49 am Te piden hacer JFrames cuando aún no sabes ni tratar excepciones?
Código
Ejemplo: Código
|