【发布时间】:2017-10-05 10:34:58
【问题描述】:
我有一个在屏幕上绘制元素的PackingCanvas,它是JavaFX Canvas 控件的扩展。我希望在调整大小时绘制我的元素,但只有在调整大小完成后才能绘制,因为在某些情况下,在每次调整大小事件时重新绘制整个画布可能成本太高。
我现在拥有的如下:
widthProperty().addListener(evt -> draw());
heightProperty().addListener(evt -> draw());
我试过用线程来做这个;添加一个小延迟,看看是否新创建了一个新线程,如果没有; draw(),否则中止当前线程。
但是,这对我来说似乎不是一个优雅的解决方案。有处理这些问题的成语吗?
【问题讨论】:
-
使用ReactFX:“考虑一个矩形,它每次宽度或高度发生变化时都需要重新绘制。使用指示器和流组合器,我们可以将上面示例中的重新绘制次数减少到1。”
标签: java user-interface javafx