У меня есть код, в котором у меня есть код с 5 JButtons, и у меня есть отдельный массив, который генерирует случайное число от 1 до 6 (бросок игральных костей), а внутри прослушивателя действий у меня есть только та часть, которая добавляет мою кнопку на мою панель (panel. add(roll1)) и перед прослушивателем действий у меня есть массив, который генерирует случайное число, а затем у меня есть переключатель, говорящий, что если случайное число равно 1, то установите изображение в dice1, если массив равен 2, установите изображение в dice2. Итак, у меня все это работает сейчас, так как я делаю игру yahtzee, мне нужно знать, как сделать так, чтобы она запускалась максимум 3 раза за ход. Прямо сейчас JButton нажимается только один раз, и он выводит другие JButton со случайными изображениями игральных костей, но когда я снова нажимаю кнопку броска, кости не бросаются, они остаются прежними. Как бы вы это сделали?
public static void randomRoll(final JPanel panel) throws Exception
{
final ImageIcon icon = new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Dice-1.png/45px-Dice-1.png"));
final ImageIcon icon1 = new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Dice-2.png/45px-Dice-2.png"));
final ImageIcon icon2 = new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Dice-3.png/45px-Dice-3.png"));
final ImageIcon icon3 = new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Dice-4.png/45px-Dice-4.png"));
final ImageIcon icon4 = new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Dice-5.png/45px-Dice-5.png"));
final ImageIcon icon5 = new ImageIcon(new URL("http://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Dice-6.png/45px-Dice-6.png"));
final ImageIcon [] diceIcons = {icon, icon1, icon2, icon3, icon4, icon5};
int array [] = new int [5];
for(int i = 0; i < 5; i++)
{
array [i]= (int) (Math.random () * 6) + 1;
System.out.println(array[i]);
}
final JButton roll1 = new JButton(diceIcons[array[0]-1]);
final JButton roll2 = new JButton(diceIcons[array[1]-1]);
final JButton roll3 = new JButton(diceIcons[array[2]-1]);
final JButton roll4 = new JButton(diceIcons[array[3]-1]);
final JButton roll5 = new JButton(diceIcons[array[4]-1]);
final JButton dice = new JButton ("Roll Dice");
dice.setBounds(40, 40, 100, 30);
panel.add(dice);
panel.setLayout(null);
dice.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
roll1.setBounds(40, 100, 70, 70);
roll2.setBounds(40, 180, 70, 70);
roll3.setBounds(40, 260, 70, 70);
roll4.setBounds(40, 340, 70, 70);
roll5.setBounds(40, 420, 70, 70);
//Adding to JFrame
panel.add(roll1);
panel.add(roll2);
panel.add(roll3);
panel.add(roll4);
panel.add(roll5);
panel.doLayout();
panel.repaint();
panel.revalidate();
}
});
}
Обновлять
dice.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
int array [] = new int [5];
for(int i = 0; i < 5; i++)
{
array [i]= (int) (Math.random () * 6) + 1;
System.out.println(array[i]);
}
final JButton roll1 = new JButton(diceIcons[array[0]-1]);
final JButton roll2 = new JButton(diceIcons[array[1]-1]);
final JButton roll3 = new JButton(diceIcons[array[2]-1]);
final JButton roll4 = new JButton(diceIcons[array[3]-1]);
final JButton roll5 = new JButton(diceIcons[array[4]-1]);
roll1.setBounds(40, 100, 70, 70);
roll2.setBounds(40, 180, 70, 70);
roll3.setBounds(40, 260, 70, 70);
roll4.setBounds(40, 340, 70, 70);
roll5.setBounds(40, 420, 70, 70);
//Adding to JFrame
panel.add(roll1);
panel.add(roll2);
panel.add(roll3);
panel.add(roll4);
panel.add(roll5);
panel.doLayout();
panel.repaint();
panel.revalidate();
}
});