所以我为一堂课写了一个小程序。我在未修饰的JFrame中将其设计为JApplet,而不是在浏览器中。除此之外,它是一个简单的绘图程序。单击两个点以绘制选定的形状,然后调用重绘。我遇到的问题是,当你将程序移动到我的辅助监视器时绘制时,整个JApplet似乎消失了,只显示绘制的形状。它只会在选择第二个点后消失,所以我认为它在repaint()上执行此操作。
我的辅助显示器使用完全相同的品牌和分辨率,甚至颜色配置文件。
任何其他技术细节,我使用Java 1.7(不能记得哪个更新),Windows 8 Enterprise 64x,使用Eclipse的Run按钮进行测试。< / p>
提前感谢您的帮助!
答案 0 :(得分:2)
我确实在调用getGraphics();在JApplet的init()方法中..
这就是问题所在。 Graphics
对象是一个瞬态的东西,将在下次JVM认为有必要时重新绘制。这可能是由以下因素引发的:
有关如何执行您要尝试的内容的详细信息,请参阅Performing Custom Painting。 OTOH Swing的JLabel
可以显示BufferedImage
。 可以 以您希望的方式使用BufferedImage
。更新后,请在标签上调用repaint()
以查看效果。