1

我正在使用 Java 2D 图形并遇到问题。

我有一个JPanel在其上绘制一些图像以及使用计时器将图像移动到圆圈中的图像。

paint()*最初我在方法中绘制界面。单击按钮后,我从文件中读取数据,然后调用一个函数以在定时控制的函数中显示这些图像和字符串。* 问题是,我的绘图屏幕显示重叠的图像,如果我调用repaint(),屏幕开始闪烁。

我需要帮助将基本绘图添加为背景面板中的图像,然后在运行时绘图到另一个重叠但透明的面板上,因此如果我调用repaint()屏幕行为正常并且不会发生闪烁。我附上了场景的截图。 背景 运行时绘图

任何人都可以建议如何添加两个面板,以便一个提供背景和其他工作,如运行时绘制到背景图像面板上?

4

1 回答 1

3

我希望有swing.JPanel而不是awt.Panel,然后用paintComponent代替paint

有四种方法

  1. 在paintComponent()中添加任何drawString或subImage / Image,将这些对象准备为局部变量,在paintComponent()中仅使用这些变量中的值或在准备好的对象数组中循环

  2. 将带有文本的图标/图像图标添加到 JLabel 的 JLabels(透明,非不透明)到 JLabel,需要将 JLabels 网格添加到 JPanel,并在运行时将 setIcon/setText 设置为所需的 JLabel

  3. 将 JLabels 放到 GlassPane 中,其余部分请参见第 2 点

  4. 将 JLabels 放到 JLayer 中,其余部分见第 2 点

于 2013-06-05T14:01:09.630 回答