这是一个Applet,有一个下拉列表Choice,列出了图片名称,有一个Canvas用来显示我从下拉列表中选中的图片。
具体是这样实现的,Choice接受ACTION_EVENT从而触发了一个方法,这个方法得到Canvas的Graphics对象,然后调用drawImage在Canvas上显示图像。
现在的现象是,当我从Choice中任意选中一个图片后,Canvas为白板;当我马上再一次选中同一个选项时,才会在Canvas上显示该图片。这时如果我再选中另一个图片,则Canvas重新成为白板。自己分析是不是因为drawImage方法会导致Update方法被调用从而清除Canvas上刚画的内容?那为什么第二次就成了呢?是因为第二次没有调用Update方法吗?
跟踪时候发现第二次确实没有调用Canvas的Update方法。如果是这样的话,那岂不是每次调用Update方法和Paint方法后我愿来干的事情都白干了么,能不能让程序不调用这两个方法呢?我对GUI这方面了解不多,现在这个问题急需解决,万望各位高人点拨一二。