我正在做一个练习,要求我执行以下操作;
根据以下规则为按钮着色: 一种。如果颜色的标签可被2整除,则将颜色更改为蓝色 b。如果颜色的标签可被3整除,则将颜色更改为 黄色 C。如果颜色的标签可被6整除,则将颜色更改为绿色
将窗格添加到场景中
我已完成所有设置,只是不确定如何读取Math.random生成的值并为该按钮分配特定的颜色。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.layout.GridPane;
import javafx.scene.control.Button;
import javafx.scene.paint.Color;
public class Exercise8GridPane extends Application {
@Override
public void start(Stage primary) {
primary.setTitle("Exercise 8");
GridPane gp = new GridPane();
gp.setHgap(0);
gp.setVgap(0);
gp.setGridLinesVisible(true);
for (int k = 0; k < 10; k++) {
for (int l = 0; l < 10; l++) {
Button btn = new Button(String.valueOf((int)(Math.random() * 100)));
// if / 3 == 0){
btn.setStyle("-fx-base:red;-fx-text-fill:yellow");
gp.add(btn, l, k);
}
}
Scene s = new Scene(gp);
primary.setScene(s);
primary.show();
}
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:0)
java.lang.Math.random()返回一个带有正号的大于等于0.0且小于1.0的双精度值。此新的伪随机数生成器此后将用于此方法的所有调用,并且在其他任何地方都不会使用。
有无数种阅读方法。
我建议做类似的事情
int RED = (int) (Math.random() * 256);
// Note that Math.random() returns a value less than 1.0
int BLUE = ...
很难从一个数字中获得三个值,所以我认为这会很好。
答案 1 :(得分:-2)
Math.random() -> 0.0 - 0.9999999...
(int)(Math.random() * 5) -> 0 - 4
(int)(Math.random() * 5 + 1) -> 1 - 5
因此,您可以编写如下内容:
int colorNum = (int)(Math.random() * 4);
if(colorNum ==0)
//set button to red
//etc.