【发布时间】:2015-03-13 19:49:12
【问题描述】:
我正在尝试创建模拟类型的应用程序,在我的 JFrame 中,我想创建两层,一层用于绘制一次并保持不变的背景,顶层负责除它们之外的所有动画和活动对象是透明的,所以你可以看到下面的背景。
我的问题是:
我可以使用 JPanel 来实现这一点,显然 JPanel 不会相互叠加,这是正确的吗?
Jlayers,我从 Jlayers 中看到的大部分都是装饰性实现,是否适合在其中运行一个摇摆计时器并在父级之上重新绘制多个项目?
顶层必须是背景层的子层还是可以在 JFrame 中创建?
还有其他的摇摆组件可以实现这一点吗?
提前感谢您的帮助。
【问题讨论】:
-
如果你想对多个组件进行分层,最好使用
JLayeredPane。您还可以选择另外一个选项,即GlassPane和JPanel,因为您想多次重绘它,或者我说渲染组件,JPanel将允许您在不影响背景的情况下执行此操作glasspane。但请确保在渲染组件时,如果您尝试刷新整个JFrame,这将是 GUI 的性能问题,它可能是位laggy。您可以使用 Swing 的计时器类来执行基于代码的操作。 -
我有一个摇摆计时器,JFrame 不会被刷新,所以我的性能应该很好,我打算使用 JLayeredPane 尝试一个峰值,看看它是否有效,干杯。