[英]Temporarily disable double buffering in Java graphics applet
如果需要,是否有一种简单的方法可以在 Java 小程序中禁用双缓冲? 我有一个显示和动画乐谱的 Java 小程序,所以我需要它双缓冲。 但是出于教学目的,我需要打印这个小程序。 问题是,在我将输出缓冲添加到打印机之前,它是基于矢量的,因此我可以将其设置为我想要的大小,并且看起来很平滑(并且还使用更便宜的黑色墨水!)但是使用双缓冲输出当然是一张图片,而且是一个相当低分辨率的图片!
基本上,当使用“display_tune”参数调用它时,我需要同一个小程序来使用双缓冲,但是当使用“view_tune”参数调用它时,我需要直接绘制带有矢量输出的图形。
非常感谢任何帮助。
你可以尝试做类似的事情
yourComponent.setDoubleBuffered(false);
// your print code
yourComponent.setDoubleBuffered(true);
该方法在JComponent
声明。 我使用此解决方案从Jung图导出 PNG 并且它起作用了。 我不确定 Jung 是否将其组件内部的该方法覆盖为不同的东西,但尝试并没有什么坏处。
您应该全局禁用双缓冲,而不仅仅是针对一个组件。 Swing 有一个叫做RepaintManager 的东西。 它允许您启用和禁用双缓冲。
假设我们无权访问该applet的源代码,那么如何在禁用了双缓冲的情况下从命令行运行它呢?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.