Il programma apre una finestra che genera linee con alcune proprietà randomizzate. Vorrei però far disegnare una linea ogni secondo, come devo usare il timer? non riesco a farlo
codice:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
public class Ex3 extends JFrame{
public int WIDTH = 400;
public int HEIGHT = 400;
public Ex3(){
Container c = this.getContentPane();
this.setBackground(Color.WHITE);
Toolkit tk = Toolkit.getDefaultToolkit();
int SCREEN_W = tk.getScreenSize().width;
int SCREEN_H = tk.getScreenSize().height;
this.setBounds((SCREEN_W - WIDTH)/2,(SCREEN_H - HEIGHT)/2,WIDTH,HEIGHT);
this.setTitle("Esercizio 1");
this.setVisible(true);
Dimension size = getSize();
}
public void paint(Graphics g){
Dimension size = getSize();
int x,y,x1,y1;
float[] stroke = {2.0f,3.0f,4.0f,5.0f};
for(int i = 0;i<=100;i++) {
x = (int)(Math.random()*(size.width-30));
y = (int)(Math.random()*(size.width-30));
Graphics2D g2d = (Graphics2D)g;
/* Per ottenere le linee con gradienti
Color g1 = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
Color g2 = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
g2d.setPaint(new GradientPaint(x,y,g1,(size.width-30)-x,(size.width-30)-y,g2,true));
*/
g.setColor(new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256)));
float s = stroke[(int)(Math.random()*3)];
g2d.setStroke(new BasicStroke(s));
g.drawLine(x,y,(size.width-30)-x,(size.width-30)-y);
}
}
public static void main(String[] args) {
Ex3 app = new Ex3();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}