我目前正在制作一个程序,我想要一个按钮被点击并运行另一个类,并且根据该类的输出,我想要在与单击的按钮相同的场景中更改图像视图。我已经编码到输出更改图像的位置。我怎么能这样做呢?(JavaFX)如何更改ImageView中的图片,这些图片是用基本Java类编码在fxml文件中的?
的Java类
public static void USPSCase() {
printUSPS();
}
public static void printUSPS(){
Random rand = new Random();
int gunSelect = rand.nextInt(99)+1;
if(gunSelect<=30){ //Calculates which gun you will get
LeadConduitUSPS(CaseSpinners.USPSCaseSpinController.setUSPImage);
}
else if(gunSelect>=31 && gunSelect<=60){
NightOpsUSPS();
}
else if(gunSelect>=61 && gunSelect<=90){
TorqueUSPS();
}
else if(gunSelect>=91 && gunSelect<=93.5){
GuardianUSPS();
}
else if(gunSelect>=94.5 && gunSelect<=97){
CyrexUSPS();
}
else if(gunSelect>=98 && gunSelect<=99){
CaimanUSPS();
}
else if(gunSelect==100){
KillConfirmedUSPS();
}
}
//some code... these two methods are connected
public static void LeadConduitUSPS(ImageView setUSPImage){
System.out.println("Lead Conduit");
Random rand = new Random();
int wareSelect = rand.nextInt(99)+1;
if(wareSelect<=10){ //Calculates the ware the gun has
setUSPImage.setImage(new Image("csgocaseopener/icon.png"));
}
else if(wareSelect>=11 && wareSelect<=25){
setUSPImage.setImage(new Image("csgocaseopener/icon.png"));
}
else if(wareSelect>=26 && wareSelect<=60){
setUSPImage.setImage(new Image("csgocaseopener/icon.png"));
}
else if(wareSelect>=61 && wareSelect<=80){
setUSPImage.setImage(new Image("csgocaseopener/icon.png"));
}
else if(wareSelect>=81){
setUSPImage.setImage(new Image("csgocaseopener/icon.png"));
}
}
FXML文件
FXML控制器
public class USPSCaseSpinController implements Initializable {
@FXML
public static ImageView setUSPImage;
@FXML
private void handleSpinMechBack(MouseEvent event) throws IOException{
Parent handleInventoryBackParent = FXMLLoader.load(getClass().getResource("/csgocaseopener/OpenCase.fxml"));
Scene OPBackScene = new Scene(handleInventoryBackParent);
Stage handleInventoryBackStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
handleInventoryBackStage.setScene(OPBackScene);
handleInventoryBackStage.show();
}
@FXML
private void SpinUSPSCase(ActionEvent event) throws IOException{
test test = new test();
test.LeadConduitUSPS(setUSPImage);
}
@FXML
public void SetUSPImage(){
setUSPImage.setImage(new Image("AWPCase.png"));
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
2017-02-09
Tresk33
+0
你能分享你的样品代码吗? –
+0
刚刚添加了java类,fxml和fxml控制器 –
+0
如果您需要更多的Java类,请告知我 –