java - 顶部带有 JComponents 的动画

标签 java swing animation

我想问一下,是否有人可以解决我面临的问题。我在一个应用程序上工作,它绘制一个动画——例如一个带有移动对象的 map 。我的问题是,在绘图的顶部,还放置了一个 Jtable、Jlist 以及其他组件。

在我的特定示例中,所有这些组件都已添加到包含 map 的面板中。结果,每个组件都会像我的 fps 一样频繁地重新绘制。因此,使其中一张表不可见可以将本来就很高的 CPU 使用率从 50% 左右降低到 30% 以下。

我的问题是,在没有“背景”( map )菜单的情况下,我如何避免调用某种程度上静态的视觉内容 paintComponent() 方法。

由于动画永久重绘,如果菜单与相应的 JPanel 分离,则菜单根本不会显示。

首先想到以下方向:

剪辑 - 实际上没有我想要的那么好,因为 id 喜欢启用在菜单中移动。 JLayeredPane - 已经尝试但似乎结果是,菜单的 paintComponent 方法仍然被频繁调用。 JWindow/Internal Frame - 几分钟前有这个想法。有一个完整的独立容器应该可以处理我的问题,或者?

我很期待,如果有人有一个优雅的想法,如何解决它并显着降低 cpu 使用率。

谢谢!! 此致。

最佳答案

我会为剪辑创建一个自定义形状。使用 Area 类并从 Area 中减去所有子组件的边界。

关于java - 顶部带有 JComponents 的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214827/

相关文章:

java - Java中的StackOverflowError

java - 尝试输出冒泡排序数组

java - 如何滚动到 JScrollPane 中的特定位置

jquery - 如何更改 svg 饼图切片从顶部开始并使用 jquery 动态制作顺时针动画

java - 使用 Jackson 序列化 yml 文件的数据对象

java - ListView 致命异常 : main java. lang.NullPointerException

java - 图像不会显示在 JPanel 上

java - 为什么我不能在我的 JFrame 上使用 "draw"?

ios - 沿贝塞尔路径的一部分为 UIView 设置动画

行删除动画完成后的 UITableView 回调