如何随意设置按钮的图像?

时间:2017-11-09 16:58:35

标签: java swing

我正在尝试做记忆游戏。我有12个按钮和6个图像。

我想将图像随机设置为按钮。一个图像到2个按钮。

ImageIcon[] icons = {icon1,icon2,icon3,icon4,icon5,icon6};
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16;

我知道这个Random r = new Random();但不知道我怎么能在这里使用它。

编辑:

你用过这个

for (int i = 0; i < buttons.length; i++)
buttons[i].setIcon( iconList.get(i) );

如何设置此图标的可见(错误)?

1 个答案:

答案 0 :(得分:2)

不要为按钮设置12个不同的变量名称。而是创建一个数组来保存12个按钮。

使用ArrayList包含12个图标(每个图像两个)。

然后,您可以使用shuffle(...)的{​​{1}}方法对图标进行随机排序。

然后创建一个循环,将每个Icon分配给一个按钮。类似的东西:

ArrayList

编辑:

以上建议是在创建按钮时将图标分配给按钮。

如果您的游戏中有一个空图标,然后在单击按钮时显示图标,则需要采用不同的方法。

在ActionListener代码中,您需要搜索按钮数组以查看单击了哪个按钮。获得此按钮的索引后,您将获得匹配的图标:

for (int i = 0; i < buttons.length; i++)
    buttons[i].setIcon( iconList.get(i) );

同一个ActionListener可以用于所有按钮,因为逻辑是通用的。