在 JMenuItem 的 hover/click 上重新绘制 JPanel
Re-painting of JPanel on hover/click of a JMenuItem
我的桌面 Java 应用程序有一个带有多个 JMenuitem 的 JMenubar,它下面是一个 JPanel,当我单击下拉菜单中的项目时,我会重新呈现它。
一切正常,但是当我悬停或单击我的 JMenuitems 时,我的 JPanel 正在重新呈现(正在调用我覆盖的 paintComponent)。
这是个问题,因为在 JPanel 上是以编程方式构建的图像(随机播种),并且构建需要一段时间,所以如果我将鼠标悬停在菜单上太多,我的程序就会挂起..
为什么会这样,我该如何解决?
编辑:即使我对随机值进行播种并获得相同的图像,程序也会进行太多不必要的计算并且速度变慢。
… (my overridden paintComponent
is being called) when I hover or click on my JMenuitems
. That is a problem, … Why is this …
这是预期的行为。该工具包会在确定有必要时重新绘制面板:E.G.s
- 上面出现或消失的菜单
- 另一个 window 或对话框 dis/appearing 在它上面
- 用户正在调整 window …
… on the JPanel
are programmatically constructed images (randomly seeded), and the construction takes a while, …
为避免必须重新创建复杂的绘画,请将细节绘制到 BufferedImage
,然后在绘画方法中绘画图像,或(更简单)将其显示在标签中。
我的桌面 Java 应用程序有一个带有多个 JMenuitem 的 JMenubar,它下面是一个 JPanel,当我单击下拉菜单中的项目时,我会重新呈现它。
一切正常,但是当我悬停或单击我的 JMenuitems 时,我的 JPanel 正在重新呈现(正在调用我覆盖的 paintComponent)。
这是个问题,因为在 JPanel 上是以编程方式构建的图像(随机播种),并且构建需要一段时间,所以如果我将鼠标悬停在菜单上太多,我的程序就会挂起..
为什么会这样,我该如何解决?
编辑:即使我对随机值进行播种并获得相同的图像,程序也会进行太多不必要的计算并且速度变慢。
… (my overridden
paintComponent
is being called) when I hover or click on myJMenuitems
. That is a problem, … Why is this …
这是预期的行为。该工具包会在确定有必要时重新绘制面板:E.G.s
- 上面出现或消失的菜单
- 另一个 window 或对话框 dis/appearing 在它上面
- 用户正在调整 window …
… on the
JPanel
are programmatically constructed images (randomly seeded), and the construction takes a while, …
为避免必须重新创建复杂的绘画,请将细节绘制到 BufferedImage
,然后在绘画方法中绘画图像,或(更简单)将其显示在标签中。