Eu estava aqui fazendo um programa meio “besta”, que gera imagem “randômicas”, mas as vezes, não sei se é impressão minha, repete as imagens. Isso está certo?
E tambêm gostaria que dessem uma olhada no código pra ver se pode ter alguns melhoramentos e o que eu devo mudar no meu “estilo de código”.
[code]import java.awt.;
import java.awt.event.;
import java.awt.image.;
import javax.swing.;
import java.util.Random;
public class guiutil extends JFrame implements ActionListener {
Random r = new Random();
Color[] cores = {Color.red, Color.green, Color.blue};
JButton b;
JLabel l;
JCheckBox c;
public guiutil() {
super("Random");
l = new JLabel();
l.setIcon(gera(false));
add(l, "North");
b = new JButton("Gera");
b.addActionListener(this);
add(b, "Center");
c = new JCheckBox("Colorido");
add(c, "South");
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new guiutil();
}
public void actionPerformed(ActionEvent e) {
if (c.isSelected()) l.setIcon(gera(true));
else l.setIcon(gera(false));
}
public ImageIcon gera(boolean cor) {
BufferedImage bf = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics g = bf.getGraphics();
g.setColor(Color.white);
g.fillRect(0,0,100,100);
g.setColor(Color.black);
for (int i=0; i<10; i++) {
if (cor) { g.setColor(cores[r.nextInt(cores.length)]); }
int x = r.nextInt(100);
int y = r.nextInt(100);
g.fillOval(x,y,x+10,y+10);
}
return new ImageIcon(bf);
}
}[/code]