如何更改Scroll JavaFX上的输出流?
尝试使用鼠标上的滚动来更改输出流,因此当我在窗格内单击时,它应该放置一个图像,使用滚动后,它应该使用不同的图像。我已经玩过一点了,不是什么都不管用,我认为最简单的选择就是有一个下拉菜单并选择大小,但这会有点不方便如何更改Scroll JavaFX上的输出流?,java,javafx,javafx-8,Java,Javafx,Javafx 8,尝试使用鼠标上的滚动来更改输出流,因此当我在窗格内单击时,它应该放置一个图像,使用滚动后,它应该使用不同的图像。我已经玩过一点了,不是什么都不管用,我认为最简单的选择就是有一个下拉菜单并选择大小,但这会有点不方便 private void addPane(int colIndex, int rowIndex) { Pane pane = new Pane(); pane.setOnMouseClicked(e -> { System.out.printf(
private void addPane(int colIndex, int rowIndex) {
Pane pane = new Pane();
pane.setOnMouseClicked(e -> {
System.out.printf("You placed a ring on cell [%d, %d]%n", colIndex, rowIndex);
Image image = new Image(Main.class.getResourceAsStream("R_bigRing.png"));
//Change the output of image
// Image image = new Image(Main.class.getResourceAsStream("B_bigRing.png"));
// Image image = new Image(Main.class.getResourceAsStream("Y_bigRing.png"));
pane.getChildren().add(new ImageView(image));
});
grid.add(pane, colIndex, rowIndex);
}
您可以收听节点
签出此代码
int selectedImagePosition = 1;
ImageView imageView;
Label label;
@Override
public void start(Stage primaryStage)
{
VBox root = new VBox();
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
this.imageView = new ImageView();
imageView.setFitHeight(200);
imageView.setFitWidth(200);
File file = new File((selectedImagePosition+1) + ".png");
imageView.setImage(new Image(file.toURI().toString()));
this.label = new Label("Image : " + selectedImagePosition);
setScrollEvent(imageView);
root.getChildren().add(label);
root.getChildren().add(imageView);
primaryStage.show();
}
public void setScrollEvent(Node node)
{
node.setOnScroll((ScrollEvent event) ->
{
if (event.getDeltaY() < 0)
selectedImagePosition = selectedImagePosition+1 > 2 ? 0 : ++selectedImagePosition;
else
selectedImagePosition = selectedImagePosition-1 < 0 ? 2 : --selectedImagePosition;
System.out.println("scrollEvent : " + selectedImagePosition);
label.setText("Image : " + selectedImagePosition);
File file = new File((selectedImagePosition+1) + ".png");
imageView.setImage(new Image(file.toURI().toString()));
});
}
int-selectedImagePosition=1;
图像视图图像视图;
标签;
@凌驾
公共无效开始(阶段primaryStage)
{
VBox root=新的VBox();
场景=新场景(根,400400);
初级阶段。场景(场景);
this.imageView=新的imageView();
imageView.setFitHeight(200);
imageView.setFitWidth(200);
文件文件=新文件((selectedImagePosition+1)+“.png”);
setImage(新图像(文件.toURI().toString());
this.label=新标签(“图像:+selectedImagePosition”);
SetScrolleEvent(图像视图);
root.getChildren().add(标签);
root.getChildren().add(imageView);
primaryStage.show();
}
公共void SetScrolleEvent(节点)
{
node.setOnScroll((ScrollEvent事件)->
{
if(event.getDeltaY()<0)
selectedImagePosition=selectedImagePosition+1>2?0:+selectedImagePosition;
其他的
selectedImagePosition=selectedImagePosition-1<0?2:--selectedImagePosition;
System.out.println(“scrollEvent:+selectedImagePosition”);
label.setText(“图像:+selectedImagePosition”);
文件文件=新文件((selectedImagePosition+1)+“.png”);
setImage(新图像(文件.toURI().toString());
});
}
注:
此代码使用在项目根中添加的三个名为(1.png、2.png、3.png)的png类型图像