JMenu在JPanel上方留下一个灰色框,上面绘制了图像

时间:2017-03-14 14:17:54

标签: java swing jpanel bufferedimage jmenu

我正在尝试为我的程序创建一个菜单,它使用.getGraphics()在JPanel上绘制一些几何对象.drawImage(..)

我遇到的问题是,在我选择此菜单上的项目后,文本消失但背景颜色没有。选择使用上面的命令调用一个方法重绘这个面板上的图像,但显然它没有帮助删除它。

单击此菜单项后,菜单后面会出现灰色框,我可以通过使用鼠标移动场景使其消失,基本上调用菜单项单击后使用的相同方法。这让我很困惑,为什么菜单项方法调用不会删除该框,但是下一次调用此方法的确如此。

有关为什么会发生这种情况和/或如何解决问题的想法?

谢谢。

图片(A,B是JMenuBar上的JMenus,下面的灰色框是在JRadioButtonMenuItem选择之后留下的): A, B are JMenus on JMenuBar and the gray box below is left after JRadioButtonMenuItem selection

1 个答案:

答案 0 :(得分:2)

  

使用.getGraphics()在JPanel上绘制一些几何对象.drawImage(..)

请勿使用getGraphics()进行自定义绘画。

自定义绘画是通过覆盖paintComponent(...)的{​​{1}}方法完成的。并且不要忘记调用super.paintComponent(...)作为第一个语句。

阅读Custom Painting上Swing教程中的部分,了解更多信息和工作示例。