【问题标题】:How to randomly repaint lines between three different colors如何在三种不同颜色之间随机重绘线条
【发布时间】:2014-06-21 00:43:37
【问题描述】:

这个程序的每个部分都在工作,除了颜色。现在我让它重新绘制任何随机颜色,我需要它只绘制黄色、绿色或蓝色的线条。有人可以引导我朝正确的方向前进吗?

`package ColoredLines;

import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
import java.awt.Color;

@SuppressWarnings("serial")
public class ColoredLines extends JPanel {
    private final Random rand = new Random();

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Random rand = new Random();

        super.paintComponent(g);
        this.setBackground(Color.BLACK);


        for(int i = 10; i < 410; i += 20){
            for(int j = 0; j < 410; j += 410){


                g.setColor(new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)));
                g.fillRect(i, j, 10, 410);
                }
            }
        }

    }
`

【问题讨论】:

  • 制作一个由这些颜色组成的数组并生成一个随机生成器以在这些颜色之间进行选择
  • 哦,好的,谢谢。我现在就试试。
  • 对不起,如果这是一个愚蠢的问题,但我现在有 3 种颜色的数组,我将如何在我的 for 循环中随机调用它?
  • 也许你可以做一个 for 循环和 mod 3 并增加 1

标签: java colors render


【解决方案1】:

制作三种颜色的 ArrayList: ArrayList&lt;Color&gt; colors = new ArrayList&lt;Color&gt;();

添加三种颜色:colors.add(new Color(r,g,b)

使用以下方法选择随机颜色:

Random rand = new Random(); Color randomColor = colors[rand.nextInt(2)];

注意:在 rand.nextInt(2);随机数可能是 0,所以可能的数字是三个 (0,1,2)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2017-09-11
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多