繁体   English   中英

在 Java 图形小程序中暂时禁用双缓冲

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM