如何使用 graphics2D 显示 1 到 10 之间的随机数?

我正在考虑如何创建它,我可以System.out.println在一个线程上创建它,它运行良好,但是,我正在询问如何使用该方法每秒显示随机数据Graphics2D,任何人都可以提供帮助吗?

这是我所做的:

String[] numbers= {"1","2", "3", "4", "5", "6", "7", "8", "9", "10"};
int random = (int) (Math.random()*numbers.length);

//here's the part I struggle
public void paint (Graphics g) {
    g2.setColor(Color.black);
    g2.drawString("The number is below", 50, 70);

    //won't run
    g2.draw(numbers, 50, 90);
}
Polywhirl 先生

您可以创建一个面板,生成一个从最小值到最大值的随机数。

首先,这是不正确的。drawString在此之前,在通话中正确使用了。

g2.draw(numbers, 50, 90); // draw is not a method of Graphics2D

其次,除非您的数组不是整数,否则您可以按原样显示随机值。

String.format("%d", getRandomInteger()) // Display a random number as a string

最后,在JComponent(swing) 中,您必须覆盖paintComponentnot paint在您的示例中,您可以只使用标准图形 ( g.drawString)。

@Override
protected void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g; // Optional, has more methods

}
import java.awt.*;
import javax.swing.*;

public class RandomNumberPanel extends JPanel {
    private static final long serialVersionUID = -4376447503776020320L;
    private int min;
    private int max;

    public RandomNumberPanel() {
        this(0, 10);
    }

    public RandomNumberPanel(int max) {
        this(0, max);
    }

    public RandomNumberPanel(int min, int max) {
        this.min = min;
        this.max = max;
    }

    public int getRandomInteger() {
        return getRandomInteger(min, max);
    }

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.BLACK);
        g2.drawString("The number is below", this.getWidth() / 4, this.getHeight() / 3);
        g2.drawString(String.format("%d", getRandomInteger()), this.getWidth() / 2, this.getHeight() / 2);
    }

    public static final int getRandomInteger(final int max, final int min) {
        return ((int) (Math.random() * (max - min))) + min;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame mainFrame = new JFrame();
                JPanel panel = new RandomNumberPanel(1, 10); // [1, 10]

                panel.setPreferredSize(new Dimension(200, 100));
                mainFrame.setContentPane(panel);
                mainFrame.pack();
                mainFrame.setLocationRelativeTo(null);
                mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                mainFrame.setVisible(true);
            }
        });
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Google表单中显示1到4之间的随机数?

c ++如何生成1到10 ^ 6之间的随机数?

使用特定字符串生成 1 到 10 之间的两个随机数

使用php生成1到10之间的30个随机数

生成1到10个Java之间的随机数

生成1到10之间的唯一随机数?

如何生成1到一百万之间的随机数?

如何生成 1 到 100 之间的 20 个随机数。显示每个数字的因子。不要在 Python 中使用嵌套循环

Excel 中 1 到 10 之间的随机数,直到选择所有数字

在Bash Shell脚本中生成1到10之间的随机数

Lambda函数用于将列表中的每个元素与1到10之间的随机数相乘?

如何使用 sha256 哈希生成 0 到 1 之间的随机数

如何生成10到99之间的50个随机数,不能重复。

如何在Java中获取40个随机数,范围从1到10?

如何在jax中生成0到1之间的随机数?

如何在C#中生成0到1之间的随机数?

生成10到65之间的随机数

无法生成 0 到 10 之间的随机数

Python中0到1之间的随机数

生成1到100之间的唯一随机数

生成 1 到 999 之间的随机数

产生0到1之间的随机数

如何使用Javascript根据页面URL显示2个随机数并将其存储到用户缓存中?

如何在遗传算法工具箱Deap中生成0到1之间的随机数

如何生成 0.1 到 0.01 之间的随机数

如何生成-1000到1000之间的随机数?

程序生成 50 个随机数(1 到 10 之间)并告诉小于 5 和大于 5 的值的数量(C#)

使用jQuery在0.3和1之间的随机数

如何生成2个随机数,一次在50到259之间,一次在50到159之间?