我正在使用此代码在Java GUI中创建一系列按钮,正好是20个按钮,具有20种不同的颜色。但是,无论如何,我不能,如果我使用此代码,我最终将所有20个按钮都用一种相同的颜色着色。如何在每个按钮中用不同的颜色给它们上色?先感谢您。请注意,从代码中,我不使用列出的数组。
setTitle("My Frame");
setSize(500, 200);
setLayout(new GridLayout(0, 5));
int R = (int) (Math.random()*256);
int G = (int) (Math.random()*256);
int B = (int) (Math.random()*256);
Color color = new Color(R, G, B);
for (int i = 0; i < 20; i++)
{
JButton button = new JButton(Integer.toString(i));
setBackground(color);
add(button);
}
setVisible(true);
答案 0 :(得分:1)
在循环{{1}之前,为变量R
,G
,B
和随后的color
分配一次随机值一次。 }}开始。然后,在整个循环中,它们将保留相同的值,因此所有按钮的最终颜色都相同。
尝试在循环的每次迭代中创建一个新的for
值:
Color
现在,循环的每次迭代都会为for (int i = 0; i < 20; i++)
{
int R = (int) (Math.random()*256);
int G = (int) (Math.random()*256);
int B = (int) (Math.random()*256);
Color color = new Color(R, G, B);
JButton button = new JButton(Integer.toString(i));
setBackground(color);
add(button);
}
,R
,G
(和B
)获得不同的随机值。
答案 1 :(得分:0)
setTitle("My Frame");
setSize(500, 200);
setLayout(new GridLayout(0, 5));
for (int i = 0; i < 20; i++)
{
int R = (int) (Math.random()*256);
int G = (int) (Math.random()*256);
int B = (int) (Math.random()*256);
Color color = new Color(R, G, B);
JButton button = new JButton(Integer.toString(i));
setBackground(color);
add(button);
}
setVisible(true);