J'ai un JPanel sur lequel je dessine un certain nombre de composants JComponents personnalisés en utilisant la méthode habituelle 'paintComponent (Graphics g)'. J'utilise un JLayeredPane pour contrôler l'ordre d'affichage des composants personnalisés, comme suit:Redimensionner JComponent pour l'exportation de fichier
public Class MyPanel extends JPanel {
private JLayeredPane layeredPane = new JLayeredPane();
private JComponent component1;
private JComponent component2;
public MyPanel() {
super();
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
component1 = new CustomComponent1();
layeredPane.add (component1, new Integer(0));
component2 = new CustomComponent2();
layeredPane.add (component2, new Integer(1));
add (layeredPane);
}
public void resizePanel(Graphics g, int newWidth, int newHeight) {
component1.setBounds (f(x), f(y), f(newWidth), f(newHeight));
component2.setBounds (f(x), f(y), f(newWidth), f(newHeight));
}
public void paintComponent(Graphics g) {
if ((getWidth() != oldWidth) || (getHeight() != oldHeight)) {
oldWidth = getWidth();
oldHeight = getHeight();
resizePanel (g, getWidth(), getHeight());
}
super.paintComponent(g);
}
Maintenant, je voudrais exporter ce panneau dans un fichier JPEG, mais avec une taille différente. Lorsque j'utilise le code suivant, il crée/exporte avec succès un fichier JPEG de la taille désirée, mais il met également à jour la version de mon écran de l'écran à la nouvelle taille! Yikes! Comment puis-je «dessiner» une image appropriée pour l'exportation, mais ne pas réellement faire afficher cette nouvelle image?
Merci!
Eh bien, je suis de retour à nouveau ce problème .....
La scène que je peins comprend un texte et maintenant l'utilisateur final veut le graphique exporté dans un aspect « portrait » rapport. Comme je ne repeint pas la scène dans les nouvelles dimensions, mais que je redimensionne simplement l'image, le texte est sérieusement écrasé horizontalement.
Quoi qu'il en soit?
Croisement posté: http://forums.sun.com/thread.jspa?threadID=5427732&tstart=0 – camickr
Ce qui suggère correctement l'utilisation de javax.imageio: http://java.sun.com/javase/6/docs/ api/javax/imageio/package-summary.html – trashgod