我发现该方法paint()
在激活后一段时间(不能立即发生,可以吗?)init()
,而不是在它完成后调用。我有一些在该方法中创建init()
和绘制的对象。paint()
但是绘图在对象初始化之前开始。这会导致异常,这些异常会自动处理。但这也会导致对象在第一次激活后不会被绘制paint()
- 它们需要重新绘制才能显示出来。
我能够以paint()
无限循环阻止方法的工作,放置在方法的开头,直到init()
完成它的工作才停止(我猜init()
并paint()
在单独的线程中运行)。但是一位受雇的 Java 程序员告诉我,这不是一个优雅的解决方案——我应该尝试做一些不同的事情(那个人没有告诉我该怎么做,他没有使用小程序,我猜,他从来没有遇到过这种情况问题,这就是我在这里问的原因)。
如何确保该paint()
方法在完成工作之前不会激活init()
,以及如何以优雅的方式实现它(在这种情况下应该是什么意思......)?
编辑:
我正在使用 Dr. Java - 出于某种原因,它在两台不同的计算机上运行小程序的方式不同:一台运行 Win XP 的非常旧的笔记本电脑(7 岁)和一台运行 Win XP 的 2 岁台式电脑7. 我犯了一个错误,不使用浏览器进行测试...
在桌面上使用 Dr. Java 进行测试时不会出现此问题。在浏览器上运行小程序时不会出现问题。它只发生在笔记本电脑上安装的编辑器上。我猜问题出在在“旧技术”上运行的代码编辑器中,而不是在代码中。