Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在每次单击按钮时显示不同的随机数_Java_Swing - Fatal编程技术网

Java 在每次单击按钮时显示不同的随机数

Java 在每次单击按钮时显示不同的随机数,java,swing,Java,Swing,我正在构建我的第一个Java应用程序,但似乎无法使其正常工作。这是一个带有GUI和独立类的老虎机,它自己可以很好地工作 这是addSlots方法: lblSlot1 = new JLabel("?"); lblSlot1.setBounds(10, 50, 100, 20); panel.add(lblSlot1); lblSlot2 = new JLabel("?"); lblSlot2.setBounds(110, 50, 100, 20);

我正在构建我的第一个Java应用程序,但似乎无法使其正常工作。这是一个带有GUI和独立类的老虎机,它自己可以很好地工作

这是addSlots方法:

    lblSlot1 = new JLabel("?");
    lblSlot1.setBounds(10, 50, 100, 20);
    panel.add(lblSlot1);

    lblSlot2 = new JLabel("?");
    lblSlot2.setBounds(110, 50, 100, 20);
    panel.add(lblSlot2);

    lblSlot3 = new JLabel("?");
    lblSlot3.setBounds(210, 50, 100, 20);
    panel.add(lblSlot3);

    lblResult = new JLabel("Result goes here");
    lblResult.setBounds(10, 100, 100, 20);
    panel.add(lblResult);
} 
public void addButtons(){ 
    btnSpin = new JButton("Spin");
    btnSpin.setBounds(50, 200, 100, 20);
    btnSpin.addActionListener(new SpinHandler());
    panel.add(btnSpin);

    btnExit = new JButton("Exit");
    btnExit.setBounds(250, 200, 100, 20);
    btnExit.addActionListener(new ExitHandler());
    panel.add(btnExit);
操作侦听器:

class SpinHandler implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent arg0) {
        System.out.println("Spin");

        SlotMachine sm = new SlotMachine();

        lblSlot1.setText(String.valueOf(sm.getSlot1()));
        lblSlot2.setText(String.valueOf(sm.getSlot2()));
        lblSlot3.setText(String.valueOf(sm.getSlot3()));

        lblResult.setText(String.valueOf(sm.getResult()));

    }
它只生成0,0,0,而不是随机数

这是slotmachine类:

public int getSlot1(){
    return slot1;
}
public int getSlot2(){
    return slot2;
}
public int getSlot3(){
    return slot3;
}

public void spin(){

    Random rand = new Random();
    slot1 = rand.nextInt(10);
    slot2 = rand.nextInt(10);
    slot3 = rand.nextInt(10);

似乎您忘记了在getSlot#()方法中调用spin()方法

您忘记了在
actionPerformed
中调用
spin
方法。只需添加sm.spin();动作处理者,谢谢!