我正在尝试为我的程序创建一个菜单,它使用.getGraphics()在JPanel上绘制一些几何对象.drawImage(..)
我遇到的问题是,在我选择此菜单上的项目后,文本消失但背景颜色没有。选择使用上面的命令调用一个方法重绘这个面板上的图像,但显然它没有帮助删除它。
单击此菜单项后,菜单后面会出现灰色框,我可以通过使用鼠标移动场景使其消失,基本上调用菜单项单击后使用的相同方法。这让我很困惑,为什么菜单项方法调用不会删除该框,但是下一次调用此方法的确如此。
有关为什么会发生这种情况和/或如何解决问题的想法?
谢谢。
图片(A,B是JMenuBar上的JMenus,下面的灰色框是在JRadioButtonMenuItem选择之后留下的):
答案 0 :(得分:2)
使用.getGraphics()在JPanel上绘制一些几何对象.drawImage(..)
请勿使用getGraphics()
进行自定义绘画。
自定义绘画是通过覆盖paintComponent(...)
的{{1}}方法完成的。并且不要忘记调用super.paintComponent(...)作为第一个语句。
阅读Custom Painting上Swing教程中的部分,了解更多信息和工作示例。