我有这个程序,我在一个有2个圆圈的窗口中有一个画布(您可以通过单击画布来移动一个圆圈)。

它在Windows和iOS上均能正常工作,但在ubuntu上却存在以下问题:

当我用窗口左上角的组合框更改选定的圆时,这些圆消失了,仅在我将选定的圆切成三角形之前在组合框项目覆盖的区域的画布的左上角中可见。

同样,当我拖动应用程序窗口以使其离开屏幕或在窗口上放置另一个窗口时,在画布的已隐藏部分中也开始可见圆圈。

您能否解释一下,为什么会这样,我在做什么错?

我程序的代码在这里:http://pastie.org/private/rm0gw2awx6d7iztyabzs7q

最佳答案

您正在中断绘画链,应该调用super.paint,但是对于JPanel,您应该覆盖paintComponent(并在执行任何自定义绘画之前调用super.paintComponent

查看Painting in AWT and SwingPerforming Custom Painting以获得更多详细信息

10-06 14:02