骰子JAVAFX的最后一个值

时间:2018-04-25 20:13:06

标签: java javafx

我通常不会去这些网站,但我有一个严重的nooby问题,无法真正找到解决方法。

所以当你按下按钮时,我会有一个简单的骰子滚动。它打印出控制台中的所有骰子编号。现在我想保存最后一个int,这样我就可以用它做计算等了。现在的问题是我真的不知道如何获得骰子的最后一个int并在控制台中打印出来。有没有人有这方面的经验,可以帮助我吗?这是我的代码:

btn.setText("Roll Die");
        btn.setOnAction((ActionEvent event) -> {
            btn.setDisable(true);//Disable Button
            Random random = new Random();
            int gekozen = Integer.parseInt(tf3.getText());

            Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(.3), (actionEvent) -> {
                int tempRandom = random.nextInt(6) + 1;
                System.out.println(tempRandom);
                die.setDieFace(tempRandom);

        }));

        timeline.setCycleCount(random.nextInt(20) + 1);
            timeline.play();
            timeline.setOnFinished(actionEvent -> {
                btn.setDisable(false);//Enable Button

            });


});

2 个答案:

答案 0 :(得分:1)

最好的选择就是将值存储在某处。你的Die课程(或者die所属的课程)似乎是一个很好的候选人。在设计良好的类中,如果将值传递给set方法,比如说setXyz(x),那么调用getXyz(),同时对同一个对象不进行任何操作,将返回相同的值{{1 }}。因此,如果您按照标准Java模式设计了类,则可以执行

x

另一个选择是提前计算所有临时芯片值:

timeline.setCycleCount(random.nextInt(20) + 1);
timeline.play();
timeline.setOnFinished(actionEvent -> {
    btn.setDisable(false);//Enable Button
    int dieValue = die.getDieFace();
    System.out.println(dieValue);
});

答案 1 :(得分:0)

您可以将int变量添加到Die类。

import javafx.scene.image.Image;
import javafx.scene.image.ImageView;

/**
 *
 * @author blj0011
 */
public class Die
{
    ImageView dieFace;
    Image[] images;
    int dieValue;

    public Die(Image[] images)
    {
        this.images = images;
        dieFace = new ImageView(this.images[0]);//set default to image 0
        dieValue = 1;
    }

    public Die(Image[] images, int dieFaceValue)
    {
        //Need to catch for values less than 1 and greater than 6!
        this.images = images;
        dieFace = new ImageView(this.images[dieFaceValue - 1]);
        dieValue = dieFaceValue;
    }

    public ImageView getdieFace()
    {
        return dieFace;
    }

    public int getDieValue()
    {
        return dieValue;
    }

    public void setDieFace(int dieFaceValue)
    {
        //Need to catch for values less than 1 and greater than 6!
        dieFace.setImage(this.images[dieFaceValue - 1]);
        dieValue = dieFaceValue;
    }
}