我的应用程序在启动时不会自行绘制.调整大小或最小化/最大化它时,应用程序的窗口被绘制.
此问题仅出现在Windows计算机上(我测试过XP,Vista和Windows 7).在Mac OS X和Linux上,该应用程序运行正常.
机器已安装java 6.我的应用程序使用AWT,因此不使用Swing.我尝试使用Swing(所以JFrame代替Frame),但这并没有解决问题.
我检查了框架的repaint(),update()和paint()上的调用.它们都出现了,并且可以绘制要绘制的图像.我还检查了这些调用是否在EDT线程上完成.情况就是这样.当窗口调整大小(或最小/最大)时,系统完成对paint()的调用,并绘制图像.
我担心的是我错过了一些非常明显的东西.我正在使框架可见,验证它(也用无效测试)并重新绘制它.这在Mac OS X和Linux中就足够了.
有人对我应该做什么有什么建议,或者还有什么可以尝试?
Thanx提前
莫里斯
最佳答案 我的猜测是你重写了Frame.paint.从绘制到JPanel(或Canvas,如果你坚持使用过时的AWT),你可能会得到更好的结果,当你这样做时,确保你覆盖JPanel的paintComponent,而不是绘画.在某些情况下,带有ImageIcon的JLabel仍然可以更简单.
但是,正如其他人所建议的那样,尝试发布一个测试用例.