2016-09-06 87 views
0

所以让我们说我们有一个ScrollPane和一个垂直的ScrollBar。在JavaFX中调整窗格大小后,是否可以保持ScrollBar的位置?

在ScrollPane内部,我们有一个垂直扩展的FlowPane。

FlowPane内部我们有大量的小元素。

现在我们可以说我的舞台窗口尺寸为500x500,滚动窗格上的ScrollBar位于0.5左右。

如果我扩大舞台窗口并使其显示全屏,FlowPane尺寸也会展开,并且它将具有更多可用的宽度,因此它的高度会随着更多的元素内部能够适合而降低在一排中,因此该流片将具有较少的行。

这将导致滚动条的地方跳到位置0.9左右(非常粗略地)

我不喜欢这种行为,我需要滚动条停留在0.5的位置。

这可能吗?

+0

你想要添加项目时滚动位置保持在0.5? – Alexiy

+0

每当滚动窗格内容的高度发生变化时,所以当添加项目时也是如此。 – user1488773

回答

0

可以通过将一个ListChangeListener附加到FlowPane的子节点上。这样的事情:

 FlowPane flowPane=new FlowPane(); 
     ScrollPane scrollPane=new ScrollPane(flowPane); 

     flowPane.getChildren().addListener(new ListChangeListener<Node>() 
     { 
      @Override 
      public void onChanged(Change<? extends Node> c) 
      { 
       scrollPane.setHvalue(0.5); //sets the horizontal scroll 
       scrollPane.setVvalue(0.5); //sets the vertical scroll 
      } 
     }); 
相关问题