你看到了吗?

每个房子的每块砖都是16x16像素的图像.
您可以在这里看到一个基于简单JavaFX的版本,其中一些Imageview在X和Y上移动以产生"构造"的效果.
我只是将其改编为Swing使用paintComponent.
问题: - 使用JavaFX:我的电脑有问题.您在图片上看到的内容需要2秒才能加载,然后移动速度非常慢且不稳定.- 使用Swing:我不知道如何根据亮度,阴影等调整每个块.所以它看起来像这样:

我应该选择什么方法?两者都有很大的缺点.我本来希望保留JavaFX方法,但也想找到别的东西Imageview.这应该不是一个好主意.
我想知道是否可以使用Canvas的GraphicsContext创建一个圆(或使用GraphicsContext创建的任何形状),然后在画布上移动它.如果是,那么这样做的算法是什么?我习惯使用Java,但我无法理解.
在此先感谢您的帮助.
我写了以下演示程序.每个包含一个Text节点的四个HBox将添加到根(组)中.第一个和最后一个是动画的时间轴,以交换他们的位置.所有的HBox都具有相同的CSS风格.
结果是"每秒帧数"非常低的动画.我有一个双核E7400 2.8Ghz Cpu.一个核心100%使用.我期望计算在GPU中完成.删除大部分CSS(特别是阴影效果)后,动画变得更加平滑.在我有更好的表现的同时,为了保持视觉效果,我能做些什么吗?使用css来装饰要动画的节点是不是一种不好的做法?
我还使用-Dprism.verbose = true来检查硬件加速是否打开.一切似乎都好
Prism pipeline init order: d3d sw
Using platform text rasterizer
Using native-based Pisces rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d.D3DPipeline
Loading D3D native library ...
succeeded.
D3DPipelineManager: Created D3D9 device
Direct3D initialization succeeded
(X) Got class = class com.sun.prism.d3d.D3DPipeline
Initialized prism pipeline: com.sun.prism.d3d.D3DPipeline
Maximum supported texture …Run Code Online (Sandbox Code Playgroud) 我有一个添加Group了PathNode 的JavaFX ,我每秒向其添加大约30次数据.这导致我的整个GUI 在大约一分钟后变得非常迟钝且没有响应.首先,我添加这样的路径Group:
root.getChildren().add(path);
Run Code Online (Sandbox Code Playgroud)
数据添加如下:
while(true) {
// Calculate x and y...
path.getElements().add(new LineTo(x, y));
path.getElements().add(new MoveTo(x, y));
// Sleep 33 milliseconds...
}
Run Code Online (Sandbox Code Playgroud)
如果我没有添加组的路径,但之后仍然添加数据,GUI仍然保持响应,因此在绘制路径的形状时似乎存在性能问题.为什么?我该怎么做才能提高性能?知道这件事发生了还是我做错了什么?谢谢!