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

时间:2010-11-09 12:20:45

标签: java graphics applet

如果有必要,有一种简单的方法可以在java applet中禁用双缓冲吗? 我有一个java小程序显示和动画乐谱,所以我需要它双缓冲。但是出于教学目的,我需要打印这个小程序。问题是,在我添加缓冲之前,输出到打印机是基于矢量的所以我可以使它像我想要的那样大,它看起来很光滑(并且还使用更便宜的黑色墨水!)但是双缓冲输出当然是一个形象,而且是一个相当低的分辨率!

基本上我需要使用相同的applet来使用“display_tune”参数调用时使用双缓冲,但是当使用“view_tune”调用时,直接绘制带矢量输出的图形参数

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:2)

您可以尝试做类似

的事情
yourComponent.setDoubleBuffered(false);
// your print code
yourComponent.setDoubleBuffered(true);

该方法在JComponent中声明。我使用此解决方案从Jung图表导出PNG并且它有效。我不确定Jung是否将其组件中的方法改写为另一种方法,但尝试时没有受到伤害。

答案 1 :(得分:2)

您应该全局禁用双缓冲,而不仅仅是一个组件。 Swing有一个叫RepaintManager的东西。它允许您启用和禁用双缓冲。