(英语表达对我来说非常难。如果有人有奇怪的表达,请纠正我的写作。)
请注意,如果您在进行可拖动或点击操作时想要使用PNG文件。
有时透明PNG 会影响拖动和点击操作。 因此,如果要在拖动或单击操作工作时使用PNG,请使用不透明PNG。
上周,我试图在tilepane上制作一个可拖动的imageview。 它看起来像照片拼图。 我应用了点击和拖动动作。 然后它有时工作,有时没有工作。 我想知道为什么会这样。 所以我一遍又一遍地试验。 最后,我可以提出一些线索。 一个透明PNG具有不透明部分和透明部分。 因此,单击不透明零件时任务有效,单击透明零件时无效。让我们看看我的答案下面的细节。
答案 0 :(得分:0)
两种结果都不同。有一点指向 imageview ,另一件事指向hbox(imageview的父级)。
1.点击PNG的不透明部分
@FXML
private void tile1MouseClicked(MouseEvent event) {
System.out.println("result : " + event.getTarget());
}
结果:ImageView @ 7afa16c0
2.点击PNG的透明部分
@FXML
private void tile1MouseClicked(MouseEvent event) {
System.out.println("result : " + event.getTarget());
}
结果:HBox @ 3f30efe6
String[] imageName = {"slide1.png", "slide2.png", "slide3.png", "slide4.png",
"slide5.png", "slide6.png", "slide7.png", "slide8.png"};
Image img = null;
for (int i = 0; i < imageName.length; i++) {
try {
img = new Image(getClass().getResourceAsStream(imageName[i]));
} catch (Exception e) {
System.out.println("exception : " + e);
}
ImageView imageview = new ImageView(img);
imageview.setFitWidth(20);
imageview.setFitHeight(20);
HBox hbox = new HBox();
hbox.getChildren().add(imageview);
tile1.getChildren().add(hbox);
}