我在Android上使用Java FX(JDK 7的最新版本)。
这里有人有在触摸屏上滚动GridPane的经验吗?我可以使用以下代码进行全功能缩放:
gridPane.setOnZoom(new EventHandler<ZoomEvent>() {
@Override
public void handle(ZoomEvent event) {
gridPane.setScaleX(gridPane.getScaleX() * event.getZoomFactor());
gridPane.setScaleY(gridPane.getScaleY() * event.getZoomFactor());
event.consume();
}
});
我尝试对每一个可能的事件进行平移,包括JavaFX文档中的事件(http://docs.oracle.com/javafx/2/events/touch_events.htm):
gridPane.setOnScroll(new EventHandler<ScrollEvent>() {
@Override
public void handle(ScrollEvent event) {
if (!event.isInertia()) {
gridPane.setTranslateX(gridPane.getTranslateX() + event.getDeltaX());
gridPane.setTranslateY(gridPane.getTranslateY() + event.getDeltaY());
}
event.consume();
}
});
不幸的是,当我运行应用程序并尝试用手指平移时,没有任何反应。这是一个错误,是我的代码中有什么错误,还是我应该使用完全不同的技术?
非常感谢。
我实现了MOUSE_PRESSED和MOUSE_DRAGGED事件过滤器:
private class DeltaDistance {
double x;
double y;
}
private final DeltaDistance gridPaneDeltaTranslate = new DeltaDistance();
gridPane.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
paneDragX = gridPane.getLayoutX() - event.getSceneX();
paneDragY = gridPane.getLayoutY() - event.getSceneY();
System.out.println("MousePressed" + "\t" + event.getX() + " " + event.getY());
event.consume();
}
});
gridPane.addEventFilter(MouseEvent.MOUSE_DRAGGED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
gridPane.setLayoutX(event.getSceneX() + paneDragX);
gridPane.setLayoutY(event.getSceneY() + paneDragY);
System.out.println("MouseDragged" + "\t" + event.getX() + " " + event.getY());
event.consume();
}
});
尽管如此,问题仍然存在,但现在当我有工作解决方案时,更多的是出于好奇。此外,它可能比当前的解决方案更优雅。到目前为止,我接受我的答案,直到有人提出更好的答案。
问题内容: 我正在使用计算器。我注意到,在默认的android calc中,您可以水平滚动textview。我查阅了文档,发现了该属性,但是将其添加到textview后,我仍然无法进行水平滚动,文档中没有关于它的更多信息,使我认为仅添加attr就足够了。这是计算器的文本视图: 当字符超过textview宽度时,将修剪字符串,并在末尾显示…。我究竟做错了什么? 问题答案: 这样可以使textview
我有一个ImageView,下面有一个EditText。我希望在查看ImageView时能够写入EditText。EditText此时不可见。有人知道如何实现吗?我用TextWatcher试了一下,但TextChanged后的滚动不起作用。 xml如下所示:
我试图用JavaFX创建一个“可拖动”的直方图UI。我有一个滚动窗格,其中包含一个网格窗格,有一列和许多行。每行是一个包含标签的HBox。每10行,还有一个包含一行的HBox。 我试图通过设置onMousePressed、onMouseAdrag和onMouseCreleased事件处理程序(如下所示),使包含行的HBoxe可拖动。如果我将一条hbox线拖动并释放到它的起点之上,它就会工作-它最终
我可以在JavaFX中创建一个仅水平滚动的滚动窗格,如下所示: 但是,鼠标滚轮在这种情况下仍然尝试垂直滚动而不是水平滚动(除非我专门在水平滚动条上滚动。)
问题内容: 我在Rails应用程序中使用Elasticsearch&Typeahead执行自动完成。我从这里得到了主意 https://shellycloud.com/blog/2013/10/adding-search-and-autocomplete-to-a- rails-app-with-elasticsearch 我已经正确配置了elasticsearch自动完成功能,因为当我直接通过浏
问题内容: 在鼠标滚轮上滚动它执行水平滚动。 已编辑 好吧,firebug说他在用 问题答案: 看来他只是将mousewheel事件映射到滚动区域。在IE中,仅通过使用方法就非常容易-滚动水平条的量为垂直条通常滚动的量。其他浏览器不支持该方法,因此您必须随心所欲地滚动任意数量: