Ich versuche, ein einfaches Java-Spiel zu machen. Es funktioniert gut, aber ich einen Hintergrund zeichnen, aber ich habe nicht Platz der Farbe zu stoppen, ist es immer Wie Hintergrundgrafiken in Java zu stoppen?
ändern schreibe ich eine andere Klasse für das, und ich nenne es in Haupt, aber ich habe es nicht
work @ SuppressWarnings („serial“)
class BackPan extends JFrame{
private JLayeredPane layers;
private JPanel down;
static int width = Board.boardWidth;
static int height = Board.boardHeight;
Random rnd = new Random();
public BackPan(){
layers = new JLayeredPane();
rnd =new Random();
down = new JPanel(){
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D)g;
//***************************************************************
int low = 50;
int high = 255;
for(int i = 0; i<= width; i+=50){
g2d.setColor(new Color(rnd.nextInt(high-low)+low,rnd.nextInt(high-low)+low,rnd.nextInt(high-low)+low));
g2d.fillRect(i, 50, 50, 50);
for(int j = 0; j<= height; j += 50){
g2d.setColor(new Color(rnd.nextInt(high-low)+low,rnd.nextInt(high-low)+low,rnd.nextInt(high-low)+low));
g2d.fillRect(i, j, 50, 50);
}
}
}
};
//****************************************************************
down.setBounds(0, 0, width, height);
layers.add(down, new Integer(1));
getContentPane().add(layers, BorderLayout.CENTER);
}
}
'paintComponent' wird aufgerufen, wenn die GUI eine Aktualisierung benötigt, so dass Sie jedes Mal zufällige Farben erhalten. Sie könnten zufällige Werte in einem Array/Matrix speichern und damit malen, anstatt Farben innerhalb von 'paintComponent' zu erzeugen. – BackSlash
@BackSlash: Bitte posten Sie das als Antwort, da es sicherlich besser ist als die von Calculator zur Verfügung gestellte Antwort. Original-Poster, wie der Backslash nahelegt - randomisieren Sie nicht innerhalb einer Methode, auf die Sie keinen Einfluss haben, die paintComponent-Methode. Stattdessen randomize an anderer Stelle, speichern Sie die Ergebnisse in ein Feld, und verwenden Sie dann dieses Feld in PaintComponent zu zeichnen. –