为了账号安全,请及时绑定邮箱和手机立即绑定

使用 java.util.Random 在游戏中随机写入数字

使用 java.util.Random 在游戏中随机写入数字

慕侠2389804 2022-05-12 16:43:05
这是我的代码。我希望窗口看起来像这样,但我不喜欢在这段代码中将数字写成 1-36。当我删除该代码并尝试:Random r = new Random();for(int k = 0; k < z; k++) {并且我定义z=20;了最初带有 1-36 号的字段被删除。我的预期输出是,像下面的代码一样的字段,但每次打开游戏时数字都会有所不同。JFrame frame = new JFrame();frame.setSize(600, 400);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(new GridLayout(1, 2, 1, 1));JPanel panel = new JPanel();panel.setLayout(new GridLayout(2, 1, 1, 1));frame.add(panel, BorderLayout.CENTER);JPanel center = new JPanel();center.setLayout(new GridLayout(9, 9, 1, 1));int z = 0;for(int i = 0; i < 6; i++) {    for(int j = 0; j < 6; j++) {        JButton button = new JButton(Integer.toString(++z));        center.add(button);    }}frame.add(center, BorderLayout.CENTER);frame.setVisible(true);
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您可以使用一种方法,将指定范围内的随机数添加为按钮的名称。像这样:


public class Frame {


public static void main(String[] args) {            

    JFrame frame = new JFrame();

    frame.setSize(600, 400);

    frame.setVisible(true);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.getContentPane().setLayout(new GridLayout(1, 2, 1, 1));


    JPanel panel = new JPanel();

    panel.setLayout(new GridLayout(2, 1, 1, 1));


    frame.add(panel, BorderLayout.CENTER);


    JPanel center = new JPanel();

    center.setLayout(new GridLayout(9, 9, 1, 1));


    for(int i = 0; i < 6; i++) {

        for(int j = 0; j < 6; j++) {


            JButton button = new JButton(Integer.toString(random(1, 6)));

            center.add(button);

        }

    }

    frame.add(center, BorderLayout.CENTER);

    frame.setVisible(true);

}


private static int random(int min, int max) {

    return (int) (Math.random() * (max - min) + min);

        }

}


查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信