У меня есть панель прокрутки JavaFX внутри панели JFXPanel в моем проекте Java. Этот проект будет на сенсорных мониторах без клавиатуры, поэтому мне нужно эмулировать прокрутку на сенсорном экране.
Проблема в; если я перетаскиваю мышь в ScrollPane, она работает нормально, но если я перетаскиваю мышь туда, где есть кнопки, она не может прокручиваться (и идея заключается в том, что ScrollPane будет заполнен кнопками без пробела между ними).
Белая часть и кнопки находятся внутри панели прокрутки
Вот часть, которая создает ScrollPane в моем коде.
private static Scene createScene(int wS, int hS) {
ScrollPane scrollPane = new ScrollPane();
FlowPane flowpane = new FlowPane();
scrollPane.setCache(true);
scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
scrollPane.setPannable(true);
for(int i=0; i<100; i++)
flowpane.getChildren().add((new ButtonProduct(wS, "Apple " + (i+1)));
scrollPane.setContent(flowpane);
Scene scene = new Scene(scrollPane);
return (scene);
}
ИЗМЕНИТЬ:
Я добавил MouseEvent, когда кнопка перетаскивается, но я не знаю, как выбрать область прокрутки для ее перемещения.
public ButtonProduct(int wS, String t) {
this.setText(t);
this.setMinSize((int) (wS*sizeW), (int) (wS*sizeW));
this.setPrefSize((int) (wS*sizeW), (int) (wS*sizeW));
this.setMaxSize((int) (wS*sizeW), (int) (wS*sizeW));
this.setOnDragDetected(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
System.out.println("Dragged Button");
e.consume();
}
});
}