私は単純なJavaゲームを作ろうとします。それは常に私はそのための別のクラスを書いて、私はメインでそれを呼び出すが、私はそれをJavaで背景グラフィックスを停止するには?
を変更する、それが正常に動作しますが、私は背景を描くが、私は、正方形の色を停止していません@ SuppressWarnings(「シリアル」)は
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);
}
}
GUIがリフレッシュする必要があるときはいつでも、 'paintComponent'が呼び出されるので、毎回ランダムな色が得られます。あなたは配列/行列の中にランダムな値を保存し、 'paintComponent'の中に色を生成するのではなくペイントすることができます – BackSlash
@BackSlash:Calculatorが提供する答えよりも確かに優れています。バックスラッシュが示すように、元のポスター - あなたがコントロールできないメソッド内でpaintComponentメソッドをランダム化しないでください。他の場所でランダム化する代わりに、結果をフィールドに保存してから、paintComponent内のそのフィールドを使用して描画します。 –