2015-10-29 5 views
1

Я пытаюсь сделать простую игру в java. В основном, нажав кнопку «запуска» JButton, в отдельном JFrame появится еще 3 кнопки (обозначенные A, B и C). Я хочу, чтобы одна из кнопок (случайная) была красной, как только откроется эта вторая JFrame. Каждый раз, когда я нажимаю кнопку «Пуск», случайная кнопка должна быть красной. В дополнение к этому, после того, как я нажму красную кнопку, я хочу, чтобы другая случайная кнопка была красной, и цикл продолжается. Вот мой код до сих пор:Как установить цвет случайного JButton?

import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

public class Driver { 
public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Game()); 
    JFrame window; 
    window = new JFrame("Clicking Game"); 
    window.setSize(300, 300); 
    JButton b = new JButton("START"); 
    window.setLayout(new GridLayout(5,5)); 
    window.add(new JLabel("INSTRUCTIONS: \n Click the 'START' button to start the game." 
      + " Click as many of the red buttons as you can before time runs out!")); 
    window.add(b); 
    window.pack(); 
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    window.setVisible(true); 
    b.addActionListener(new StartButtonHandler()); 
    b.addActionListener(new ActualButtonHandlers()); 



} 

}

package code; 


import java.awt.Color; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

class StartButtonHandler implements ActionListener { 
     public void actionPerformed(ActionEvent e){ 
      JFrame win = new JFrame("CLICK FAST!"); 
      win.setVisible(true); 
      win.setSize(500, 500); 
      JButton a = new JButton("A"); 
      JButton b = new JButton("B"); 
      JButton c = new JButton("C"); 
      win.add(a); 
      win.add(b); 
      win.add(c); 
      win.pack(); 
      win.setLayout(new GridLayout(1,3)); 

ответ

0

Это лучшее, что я, как я нужным идти об этом. Загрузите JButtons в массив или arraylist. Затем в их действии слушатели выбирают из списка массива или массива jbutton с помощью своего индекса, в котором вы можете использовать метод Math.random() для этого. Это порождает случайное число. Удостоверьтесь, что они статичны, поэтому вы можете манипулировать ими из другого класса.

Смежные вопросы