[我正在制作一个包含JButtons(MxN)网格的小游戏,主要前提是单击buttonA
,然后单击buttonB
,为buttonB
和与buttonB
颜色相同的相邻按钮着色颜色为buttonA
。我做到了,因此您可以选择3种可能的困难。颜色是随机生成的。主要问题是要改变颜色。
这是在选择游戏难度后调用的方法:
public static void gameMechanics(int m, int n) {
final String[] pickedColour = {""};
final String[] placedColour = {""};
JButton[][] picked = new JButton[m][n];
JButton[][] placed = new JButton[m][n];
picked[m][n].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
pickedColour[0] = picked[m][n].getText();
}
});
placed[m][n].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
placedColour[0] = placed[m][n].getText();
}
});
if (pickedColour[0] == "R" && placedColour[0] != "R") {
placed[m][n].setBackground(Color.RED);
placed[m][n].setText("R");
}
else if (pickedColour[0] == "G" && placedColour[0] != "G") {
placed[m][n].setBackground(Color.GREEN);
placed[m][n].setText("G");
}
else if (pickedColour[0] == "B" && placedColour[0] != "B") {
placed[m][n].setBackground(Color.BLUE);
placed[m][n].setText("B");
}
}
我会考虑使用JPanel
并对其进行绘画,而不是使用MouseListener
。