gpt4 book ai didi

java - 我如何使用按钮更改 javafx 中的图像

转载 作者:行者123 更新时间:2023-11-30 11:05:51 25 4
gpt4 key购买 nike

为了尽可能清楚这个程序应该显示 4 张随机选择的卡片,然后在它们下面有一个按钮可以从一副 52 张卡片中随机重置所有卡片。但是我对如何操作感到困惑在 Action 事件中解决这个问题。 (还有一个额外的好处,我似乎无法让按钮显示在卡片下方,而我只是最终将整个屏幕从卡片和按钮上移开)任何帮助将不胜感激。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.layout.GridPane;
import javafx.event.ActionEvent;

public class GenerateCards extends Application {

public static void main(String[] args) {
Application.launch(args);

}
public int cardNum(){
int Num = (int) Math.ceil(Math.random()*52);
return Num;
}
public void start(Stage primaryStage) {

primaryStage.setTitle("Random Card");

GridPane pane = new GridPane();
pane.setAlignment(Pos.CENTER);
pane.setHgap(10);
pane.setVgap(5);

// creates button
Button refresh = new Button("Refresh");
HBox button = new HBox(10);
button.setAlignment(Pos.BOTTOM_CENTER);
button.getChildren().add(refresh);
pane.getChildren().add(refresh);

// creates random card images and adds them to pane
Image img = new Image("card/"+cardNum()+".png");
ImageView imgView = new ImageView(img);
pane.add(imgView, 1, 0);

Image img2= new Image("card/"+cardNum()+".png");
ImageView imgView2 = new ImageView(img2);
pane.add(imgView2, 2, 0);

Image img3= new Image("card/"+cardNum()+".png");
ImageView imgView3 = new ImageView(img3);
pane.add(imgView3, 3, 0);

Image img4= new Image("card/"+cardNum()+".png");
ImageView imgView4 = new ImageView(img4);
pane.add(imgView4,4, 0);
//create scene
Scene scene = new Scene(pane,400,200);
primaryStage.setScene(scene);
primaryStage.show();
refresh.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e){
// where im confused
}
});

}
}

最佳答案

在您的按钮操作处理程序中,您只需在每个 ImageView 中重置图像。

refresh.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
imgView.setImage(new Image("card/" + cardNum() + ".png"));
imgView2.setImage(new Image("card/" + cardNum() + ".png"));
imgView3.setImage(new Image("card/" + cardNum() + ".png"));
imgView4.setImage(new Image("card/" + cardNum() + ".png"));
}
});

关于java - 我如何使用按钮更改 javafx 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29485023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com