首页 文章

Jarame中的JPanel派生类 - 绘制副本

提问于
浏览
0

我已将我的JPanel派生类添加到JFrame中 . 现在,当我想绘制一个椭圆形(在我的JPanel的paintComponent方法中使用fillOval)时,我看到两个椭圆被绘制 . 当我调用super.paintComponent或在JFrame类中以我的JPanel作为参数调用setContentPane时,问题就消失了 . 问题是,为什么会发生?当然,当JPanel和JFrame的左上角在同一个地方时,它不会发生 . 但不管怎么说,除非我调用super.paintComponent,否则JPanel不是不透明的 . 主要问题是为什么它在默认内容窗格和我的JPanel上绘制两个 . 感谢帮助 .

1 回答

  • 1

    “主要问题是为什么它在默认内容窗格和我的JPanel上绘制两个 . ”

    它看起来就是这样,但实际上你看到它们都被绘制在面板上 . 始终在 paintComponent 方法中调用 super.paintComponent (如果是ands或buts,则为no),否则您将看到与您正在经历的绘制工件 . 可以出于多种原因调用 paintComponent 方法,并且每次调用它都是绘制工件出现的另一个机会 . 打电话给 super.paintComponent 擦掉那些 . 当您将内容窗格设置为面板时,似乎没有多次调用 paintComponent 方法,因此您不会获得这些工件 . 但重申一下,总是打电话给 super.paintComponent . 设置内容窗格与问题或解决方案无关 .

相关问题