2010-11-09 17 views
2

Y a-t-il un moyen simple de désactiver la double mise en mémoire tampon dans une applet Java si nécessaire? J'ai une applet java qui affiche et anime une partition musicale, donc j'avais besoin d'un double tampon. Cependant pour l'enseignement j'ai besoin d'imprimer cette applet. Le problème est qu'avant d'ajouter un tampon, la sortie vers l'imprimante était basée sur un vecteur, donc je pouvais le faire aussi grand que je le voulais et il semblerait lisse (et utilise aussi le type d'encre noire moins cher!) Mais avec le double buffering est bien sûr une image, et une résolution assez basse à cela!Désactiver temporairement la double mise en mémoire tampon dans l'applet graphique Java

Fondamentalement, je besoin même applet pour utiliser le double buffering lorsqu'elle est appelée avec le paramètre « display_tune » mais dessiner directement à des graphiques avec sortie vecteur quand il est appelé avec le paramètre « view_tune ».

Toute aide très appréciée.

Répondre

2

Vous pouvez essayer de faire quelque chose comme

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

la méthode est déclarée JComponent. J'ai utilisé cette solution pour exporter un fichier PNG à partir d'un graphique Jung et cela a fonctionné. Je ne suis pas sûr si Jung substitue cette méthode dans leurs composants à une autre chose, mais il n'y a pas de mal à essayer ..

+0

Merci à vous deux pour avoir répondu, vous semblez faire référence à la même chose, alors j'ai trouvé quelques infos http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial -Printing.html sur le double tampon. Mon expérience avec Java est limitée. J'utilise une image hors écran, donc à la place de g2d.drawLine() etc j'écris offscreenImage.drawLine(). Je suppose que ce n'est pas le double tampon standard dont vous parlez? Existe-t-il un moyen simple de simplement renommer "g2d" en "offscreenImage" quand la version imprimée de l'applet est utilisée? – jason

2

Vous devez globalement désactiver le double tampon, pas seulement pour un composant. Swing a quelque chose appelé RepaintManager. Il vous permet d'activer et de désactiver le double tampon.