我通常不会去这些网站,但我有一个严重的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
});
});
答案 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;
}
}