如何在Java GUI中为按钮创建各种颜色?

时间:2018-12-11 00:25:35

标签: java user-interface

我正在使用此代码在Java GUI中创建一系列按钮,正好是20个按钮,具有20种不同的颜色。但是,无论如何,我不能,如果我使用此代码,我最终将所有20个按钮都用一种相同的颜色着色。如何在每个按钮中用不同的颜色给它们上色?先感谢您。请注意,从代码中,我不使用列出的数组。

        setTitle("My Frame");
        setSize(500, 200);
        setLayout(new GridLayout(0, 5));

        int R = (int) (Math.random()*256);
        int G = (int) (Math.random()*256);
        int B = (int) (Math.random()*256);
        Color color = new Color(R, G, B);

        for (int i = 0; i < 20; i++)
        {
            JButton button = new JButton(Integer.toString(i));
            setBackground(color);
            add(button);
        }
        setVisible(true);

2 个答案:

答案 0 :(得分:1)

在循环{{1}之前,为变量RGB和随后的color分配一次随机值一次。 }}开始。然后,在整个循环中,它们将保留相同的值,因此所有按钮的最终颜色都相同。

尝试在循环的每次迭代中创建一个新的for值:

Color

现在,循环的每次迭代都会为for (int i = 0; i < 20; i++) { int R = (int) (Math.random()*256); int G = (int) (Math.random()*256); int B = (int) (Math.random()*256); Color color = new Color(R, G, B); JButton button = new JButton(Integer.toString(i)); setBackground(color); add(button); } RG(和B)获得不同的随机值。

答案 1 :(得分:0)

        setTitle("My Frame");
        setSize(500, 200);
        setLayout(new GridLayout(0, 5));

        for (int i = 0; i < 20; i++)
        {
            int R = (int) (Math.random()*256);
            int G = (int) (Math.random()*256);
            int B = (int) (Math.random()*256);
            Color color = new Color(R, G, B);
            JButton button = new JButton(Integer.toString(i));
            setBackground(color);
            add(button);
        }
        setVisible(true);