我正在使用一个窗格,其中包含我想要做的所有内容,即在单击下一个按钮时设置新内容。我可以使用set invisible和visible来显示下一个内容,但这不是我想要的,我希望在stackpane中有它,所以我有一个图像存储在他们和按钮中。
答案 0 :(得分:0)
您可以将imageview对象添加到堆栈窗格中,并在单击按钮时更改图像。
更新的答案
@Override
public void start(Stage primaryStage) {
Button btn = new Button("One");
Button btn2 = new Button("Two");
btn2.setTranslateX(btn.getTranslateX() + 60);
Image img1 = new Image ("https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Thumbs_up_font_awesome.svg/512px-Thumbs_up_font_awesome.svg.png");
Image img2 = new Image ("https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/thumbs_down.png");
Image loadImg = new Image("http://www.ledr.com/colours/white.jpg");
ImageView imgHolder = new ImageView(loadImg);
imgHolder.setVisible(false);
imgHolder.setFitHeight(100);
imgHolder.setFitWidth(100);
//Offset stackapane
imgHolder.setTranslateY(-80);
Random rand = new Random();
btn.setOnAction(e->{
int randomNum = rand.nextInt(10) + 1;
imgHolder.setVisible(true);
if(randomNum % 2 == 0){
imgHolder.setImage(img1);
}
else{
imgHolder.setImage(img2);
}
});
//Repeat action for btn2
StackPane root = new StackPane();
root.getChildren().addAll(btn,btn2,imgHolder);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}