当前位置: 首页 > 知识库问答 >
问题:

JavaFX2.2的ScrollPane内容太高了?

瞿健
2023-03-14

我使用JavaFX2.2绘制甘特图
在SplitPane的左侧可编辑带有计划任务的tableView(名称、开始、结束),
右侧可panning包含图表的滚动窗格
我在表中添加了一个ObservableList of Tasks,在循环中,为列表中的每个任务创建矩形节点并将其添加到ScrollPane中。图表中表示任务的矩形必须是交互式的,并且可以监听事件,以便它们可以左/右移动,水平调整大小等,并且该属性绑定到相应的任务对象,因此每当我移动矩形时,任务的开始/结束等都会发生变化,当我编辑表格中的单元格时,相应的矩形也会发生变化。TableView与ScrollPane一起垂直滚动...

如果我有多达100个任务,所有工作似乎都很顺利,但当我有超过这个任务时,拖动矩形(而不是滚动窗格)非常慢,占用大量CPU,当超过300个任务时,应用程序崩溃...

我如何使用线程以及处理事件的最佳解决方案是什么?懒惰绑定,辅助线程,其他什么?

或者我刚才描述的这种方法真的很好吗?
是否应该使用画布
我是javaFX和GUI编程的新手
谢谢您的回答!

编辑:
问题不在于节点数,而在于滚动窗格中内容的大小。每个用矩形表示的任务具有恒定的高度24px,与TableView中的行相同。所以当我有很多任务时,scrollPane中内容的高度变得太大,我昨天发现了,所以我需要实现动态内容加载什么的...

共有1个答案

汝彭薄
2023-03-14

正如我在https://stackoverflow.com/a/19577276/132374上提到的,只需将节点的“cache”设置为true就可以解决问题。这使得它们被缓存为图像,图形加速工作得很好。

有关“缓存”的详细信息:http://docs.oracle.com/javafx/2/api/javafx/scene/node.html#cacheproperty

 类似资料:
  • 我在滚动窗格中放置了一个VBox。VBox会在标题窗格进入时填充它们。但是,一旦TitledPanes填满了分配给Vbox的空间,这些TitledPanes就开始重叠。理想情况下,我希望Vbox调整自身大小,并使用ScrollPane导航。 我将Vbox最大高度设置为。我已经在滚动窗格中添加了一个监听器来监听VBox大小的变化,但没有成功。有什么建议吗?

  • 我拥有的是一个简单的,后跟两个子元素,和。 具有固定的高度,应填充剩余的空白空间。这很容易通过实现,但是由于某种原因,我不知道如何使元素溢出,以便在其内容超过网站窗口高度时工作? 这里是一个JSFiddle,如果您设置高度为,您可以看到元素很好地填充了空间,但是当大得多时元素不应该扩展现在的情况我错过了什么? 如果可能的话,我宁愿不使用JavaScript来解决这个问题。

  • 嗨,有没有什么方法可以提高滚动速度。我找到了一些解决方案,但都不适合我。这就是我尝试的: 或者使用css: 还有别的办法吗?编辑:上面的解决方案都不起作用,我试图使用大得离谱的数字,但滚动速度还是一样

  • 我有一个很大的数组,它有很多元素,我需要在控制台中显示它,我使用console.log(),但只显示了一部分。 如何显示完整的内容?

  • 我做了一个折叠的表视图。表视图的标签大小不会随着内容的增加而增加。我已经设置了单词包装和行= 0,但它仍然不起作用。我正在使用2 tableView单元格来制作折叠视图。

  • 我使用JavaFX2.2制作了一个应用程序,希望切换到JavaFX8。使用JavaFX2.2,我的应用程序如下所示: 在使用JavaFX8而不更改任何源代码时,如下所示: 在JavaFX8中,一些节点根本不显示(例如,条件1),有时在随机单击ScrollPane后出现。此外,节点的大小不正确(比较步骤1和小点)。另一个问题是,当执行添加节点等操作时,应用程序在JavaFX8中严重滞后。 null