我对JApplet不太熟悉 并绘制和重新绘制()。任何帮助表示赞赏。
我有一个外部类“ A”,它扩展了JApplet并在其paint()中绘制了一些东西 我还有一个私人类“ B”,它位于A内,并且扩展了JApplet并绘制 东西在其paint()中。 A的paint()引起B的paint(),因此当A运行时,A和B都被绘制。
我使用鼠标侦听器来检测何时单击了鼠标,即 B应该repaint()并绘制一些新内容并删除较旧的内容。
但是,当我按下鼠标时,我看到B的repaint()没有任何作用。 我在控制台上打印了一些调试消息,我可以告诉 当调用B的repaint()时,什么也没有发生,即该程序应该通过 B再次使用paint(),但没有。
这是常规结构,再次感谢您的帮助
babel
答案 0 :(得分:2)
问题是您的repaint()
类中的B
请求没有任何反应。可能会触发B
类的重画,但这并不意味着A
类被重画,没有人告诉他。就像你说的那样:
A的paint()会唤起B的paint(),因此当A运行时,会同时绘制A和B。
是的,但这并不意味着相反。
当您想要A
类重绘内容时,您必须在repaint()
对象上调用A
,因为这是您想要重绘的类。