Ajouter un commentaire

testeurforme

hello

voila comme prevu le code concerné. Cette classe permet d'afficher une page web dans un JtextPane cependant lorsque je veux enregistrer "l'image" de la page web j'ai un soucis.
En effet il faut attendre que la page soit entierement affichée pour que je puisse l'enregistrer (d'ou le JButton button). Ne serait ce pas possible :

- soit de ne pas a attendre l'affichage de la page dans le JtextPane
- soit (encore mieux) de ne pas avoir besoin d'afficher la page web

De plus (j'en profite ...) je risque d'avoir un autre soucis (je ne me suis pas encore penché sur la question :$) il s'agit de la definition de l'image de la page web. En effet la page affichée dans mon JtextPane ne s'affiche pas avec la meme qualité que dans Mozzilla ou IE. L'image generée n'aura donc pas la meme definition que celle affiché dans mon navigateur.... Y a t il moyen de parametrer tout cela ?

Je ne sais pas si tu pourras m'aider mais quoi qu'il arrive je réitère mes remerciements!!

Bonne journée

import javax.swing.*;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.File;
import java.net.URL;
import java.net.MalformedURLException;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;

/**
* Created by IntelliJ IDEA.
*/

public class Test {
private JTextPane editorPane;
private JFrame frame;

public static void main(String[] args) {
Test t = new Test();
t.run();
}

private void run() {
editorPane = new JTextPane();
editorPane.setEditable(false);
URL helpURL = null;
try {
helpURL = new URL("http://www.google.com");
}
catch (MalformedURLException e) {
e.printStackTrace();
}
if (helpURL != null) {
try {
FileInputStream fin = new FileInputStream("Google.htm");
File f = new File("Google.htm");
byte[] res = new byte[(int) f.length()];
fin.read(res);
String sres = new String(res);
System.err.println("RES : " + sres);
editorPane.setPage(helpURL);
}
catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + helpURL);
}
}
else {
System.err.println("Couldn't find file: TextSamplerDemoHelp.html");
}

//Put the editor pane in a scroll pane.
JScrollPane editorScrollPane = new JScrollPane(editorPane);
editorScrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));
frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(editorScrollPane, BorderLayout.CENTER);
JButton button = new JButton(new AbstractAction () {
public void actionPerformed(ActionEvent e) {
saveImage();
}
});
frame.getContentPane().add(button, BorderLayout.SOUTH);
frame.setSize(800,600);
frame.show();

}

private void saveImage() {
RenderedImage image = getImage(frame);
try {
// Save as PNG
File file = new File("test.jpg");
ImageIO.write(image, "jpg", file);
} catch (IOException e) {
e.printStackTrace();
}
}

public RenderedImage getImage(Component component) {
if (component == null) {
return null;
}
int width = 800;
int height = 600;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
component.setSize(800,600);
//component.setPreferredSize(new Dimension(800,600));
Graphics2D g = image.createGraphics();
component.paintAll(g);
g.dispose();
return image;
}

} :oops: :oops:

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 BBBB   X   X  U   U  L     V     V 
B B X X U U L V V
BBBB X U U L V V
B B X X U U L V V
BBBB X X UUU LLLL V