我正在使用Java 2D图形并遇到问题。
我有JPanel
我可以在其上绘制一些图像,并使用计时器将图像移动到圆圈中。
*最初我用paint()
方法绘制界面。按下按钮后,我从文件中读取数据,然后调用函数以定时控制函数显示这些图像和字符串。
*问题是,我的绘图屏幕显示重叠的图像,如果我拨打repaint()
,屏幕开始轻弹。
我需要帮助将基本图形作为图像添加到背景面板中,然后运行时绘制到另一个重叠但透明的面板上,这样如果我调用repaint()
屏幕表现正常且不会发生闪烁。我附上了该场景的截图。
有人可以建议如何添加两个面板,以便一个服务于背景,其他工作如运行时绘制到背景图像面板上吗?
答案 0 :(得分:3)
我希望有swing.JPanel不是awt.Panel,然后用paintComponent而不是paint
有四种方式
在paintComponent()中添加任何drawString或subImage / Image,将这些对象准备为局部变量,在paintComponent()内部仅使用这些变量中的值或在已准备好的对象数组中循环
使用带有文本的Icons / ImageIcons向JLabel添加JLabel(透明,non_opaque除非),将JLabel的网格添加到JPanel,并在运行时将setIcon / setText添加到所需的JLabel
将JLabel放入GlassPane,休息时间见第2点
将JLabel放到JLayer,休息时间见第2点