Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich erstelle eine matrix die 400 (20*20) Felder besitzt. 100 zufällig ausgewählte felder werden nun mit "true" gesetzt.
jetzt möchte ich diese matrix in einem Fenster sichtbar machen. dazu möchte ich alle felder die mit "true" gesetzt sind als schwarzes kästchen und alle anderen als rote kästchen darstellen.
die matrix erstellen und zufällig füllen ist kein problem. aber wenn ich diese ausgeben möchte gibt das programm alle kästchen übereinander links oben in der ecke des fensters aus.
vielleicht weis jemand was ich falsch gemacht habe bzw. wie ich die kästchen auf die fläche verteilen kann.
Code:
import java.awt.*;
import javax.swing.*;
import java.util.Random;
public class Test2 extends JFrame{
static boolean[][] welt_zufall =new boolean[20][20];
public Test2(){
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
final private int random(){
return (int)(Math.random()*256);
}
public void paint(Graphics gr){
for(int x =0;x<20;x++)
for(int y=0;y<20;y++){
int r=random(),g=random(),b=random();
if(welt_zufall[x][y]==true){
gr.setColor(Color.BLACK);
gr.fillRect(x,y,25,25);
}
else{
gr.setColor(Color.RED);
gr.fillRect(x,y,25,25);
}
}
}
public static void main(String[] args){
Random zufall = new Random();
int n=0;
while(n<100){
int r1 = zufall.nextInt(20);
int r2 = zufall.nextInt(20);
if(welt_zufall[r1][r2] == false){
welt_zufall[r1][r2] = true;
n=n+1;
}
}
new Test2().setVisible(true);
}
}
jetzt habe ich noch eine frage. wie kann ich das machen, dass immer im selben fenster hintereinander neue konfigurationen ausgeben werden. ich hab es mit eienr schleife versucht, dann gibt er immer wieder eine neue konfiguration der matrix aus, aber immer in einem neuen fenster. will ich das also 100 mal hintereinander machen, öffnen sich 100 fenster. es muss doch auch gehen immer in das bestehende fenster neuzuzeichnen.
vllt könnt ihr mir helfen bzw. einen denkanstoß geben.