I have a random number method and random color method set up. I have 28 buttons and they all are named button_number. The random number picks the button. I have some basic code that obviously doesn't work because I can't change the background of the string but I don't know where to go from here.
static Random random = new Random();
static int rand1 = RandomRange.showRandomInteger(1, 28, random);
static String num = Integer.toString(rand1);
static String button = ("button_" + num);
button.setBackground(randomColor());
other class
public class TestFrame extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TestFrame frame = new TestFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TestFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JLayeredPane layeredPane = new JLayeredPane();
contentPane.add(layeredPane, BorderLayout.CENTER);
JButton btnTick = new JButton("Tick");
btnTick.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnTick.setBounds(281, 217, 133, 23);
layeredPane.add(btnTick);
JButton btnStart = new JButton("Start");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnStart.setBounds(10, 217, 133, 23);
layeredPane.add(btnStart);
JButton button_27 = new JButton("");
button_27.setBounds(0, 0, 45, 45);
layeredPane.add(button_27);
JButton button_28 = new JButton("");
button_28.setBackground(Color.RED);
button_28.setBounds(45, 0, 45, 45);
layeredPane.add(button_28);
JButton button_1 = new JButton("");
button_1.setBounds(90, 0, 45, 45);
layeredPane.add(button_1);
JButton button_2 = new JButton("");
button_2.setBounds(135, 0, 45, 45);
layeredPane.add(button_2);
JButton button_3 = new JButton("");
button_3.setBounds(180, 0, 45, 45);
layeredPane.add(button_3);
JButton button_4 = new JButton("");
button_4.setBounds(225, 0, 45, 45);
layeredPane.add(button_4);
JButton button_5 = new JButton("");
button_5.setBounds(270, 0, 45, 45);
layeredPane.add(button_5);
JButton button_6 = new JButton("");
button_6.setBounds(270, 45, 45, 45);
layeredPane.add(button_6);
JButton button_7 = new JButton("");
button_7.setBounds(0, 45, 45, 45);
layeredPane.add(button_7);
JButton button_8 = new JButton("");
button_8.setBounds(225, 45, 45, 45);
layeredPane.add(button_8);
JButton button_9 = new JButton("");
button_9.setBounds(45, 45, 45, 45);
layeredPane.add(button_9);
JButton button_10 = new JButton("");
button_10.setBounds(90, 45, 45, 45);
layeredPane.add(button_10);
JButton button_11 = new JButton("");
button_11.setBounds(135, 45, 45, 45);
layeredPane.add(button_11);
JButton button_12 = new JButton("");
button_12.setBounds(180, 45, 45, 45);
layeredPane.add(button_12);
JButton button_13 = new JButton("");
button_13.setBounds(0, 135, 45, 45);
layeredPane.add(button_13);
JButton button_14 = new JButton("");
button_14.setBounds(0, 90, 45, 45);
layeredPane.add(button_14);
JButton button_15 = new JButton("");
button_15.setBounds(45, 90, 45, 45);
layeredPane.add(button_15);
JButton button_16 = new JButton("");
button_16.setBounds(45, 135, 45, 45);
layeredPane.add(button_16);
JButton button_17 = new JButton("");
button_17.setBounds(90, 135, 45, 45);
layeredPane.add(button_17);
JButton button_18 = new JButton("");
button_18.setBounds(90, 90, 45, 45);
layeredPane.add(button_18);
JButton button_19 = new JButton("");
button_19.setBounds(135, 90, 45, 45);
layeredPane.add(button_19);
JButton button_20 = new JButton("");
button_20.setBounds(135, 135, 45, 45);
layeredPane.add(button_20);
JButton button_21 = new JButton("");
button_21.setBounds(180, 135, 45, 45);
layeredPane.add(button_21);
JButton button_22 = new JButton("");
button_22.setBounds(180, 90, 45, 45);
layeredPane.add(button_22);
JButton button_23 = new JButton("");
button_23.setBounds(225, 90, 45, 45);
layeredPane.add(button_23);
JButton button_24 = new JButton("");
button_24.setBounds(225, 135, 45, 45);
layeredPane.add(button_24);
JButton button_25 = new JButton("");
button_25.setBounds(270, 135, 45, 45);
layeredPane.add(button_25);
JButton button_26 = new JButton("");
button_26.setBounds(270, 90, 45, 45);
layeredPane.add(button_26);
final JButton[] BUTTONS = {button_1,button_2,button_3,button_4,button_5,button_6,button_7,
button_8,button_9,button_10,button_11,button_12,button_13,button_14,button_15,
button_16,button_17,button_18,button_19,button_20,button_21,button_22,button_23,
button_24,button_25,button_26,button_27,button_28};
JLabel label = new JLabel("Blue:");
label.setBounds(325, 11, 89, 14);
layeredPane.add(label);
JLabel label_1 = new JLabel("Yellow:");
label_1.setBounds(325, 36, 89, 14);
layeredPane.add(label_1);
JLabel label_2 = new JLabel("Red:");
label_2.setBounds(325, 61, 89, 14);
layeredPane.add(label_2);
}
}
The name of the button is the label of the button. Keep your buttons in a collection. Iterate through the collection to match the button's .getName () with your string. Then call the button's setBackgroundColor to change the button color.
Pass color code as a String like for red color use this: button.setBackgroundColor(Color.parseColor("#ff0000")); or button.setBackground(Color.parseColor("#ff0000"));
Put all the buttons in an array or List
. When you calculate the random number, look up the button in the list/array and change its Color property
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.