我是编程和编码的初学者。我尝试做一些随机的事情来发展自己。我用JavaFX绘制了一个交通信号灯。现在,我想单击按钮时,随机灯会发光。
我用开关和elseif尝试过。我没有解决
public StoplichtLayout(Pane l){
layout = l;
layout.setStyle("-fx-background-color: #777;");
button = new Button("Teken");
button.setLayoutX(10);
button.setLayoutY(10);
button2 = new Button("Random licht laten branden");
button2.setLayoutX(100);
button2.setLayoutY(10);
button.setOnAction(ev -> {
button();
});
this.layout.getChildren().add(button);
button2.setOnAction(ev -> {
});
this.layout.getChildren().add(button2);
}
private void button(){
Rectangle paal = new Rectangle(200, 300, 25, 200);
paal.setArcHeight(10);
paal.setArcHeight(10);
Rectangle bord = new Rectangle();
bord.setX(175);
bord.setY(175);
bord.setWidth(75);
bord.setHeight(150);
bord.setFill(Color.GREY);
bord.setStroke(Color.BLACK);
bord.setArcHeight(20);
bord.setArcWidth(20);
Circle roodlicht = new Circle(15);
roodlicht.setCenterX(213);
roodlicht.setCenterY(205);
roodlicht.setFill(Color.rgb(165, 0, 0));
roodlicht.setStroke(Color.BLACK);
Circle geellicht = new Circle(15);
geellicht.setCenterX(213);
geellicht.setCenterY(250);
geellicht.setFill(Color.rgb(188, 173, 54));
geellicht.setStroke(Color.BLACK);
Circle groenlicht = new Circle(15);
groenlicht.setCenterX(213);
groenlicht.setCenterY(295);
groenlicht.setFill(Color.rgb(9, 114, 0));
groenlicht.setStroke(Color.BLACK);
layout.getChildren().addAll(paal, bord, roodlicht, geellicht, groenlicht);
}
}
我希望当我单击按钮时,随机灯会发光。我希望有人能帮助我。
答案 0 :(得分:4)
您希望发生这种情况,但是那里没有代码。将您的圈子放入已索引的集合(例如ArrayList)中,然后找到一个随机的圈子,并通过如下所示的颜色使其变亮:
List<Circle> lights = new ArrayList<Circle>();
// add your circles to the list
Circle toLight = lights.get(new Random().nextInt(lights.size()));
// V setting the color to be brighter
toLight.setFill(((Color) toLight.getFill()).brighter());