Hallo Freunde,
ich möchte den Inhalt des JDIC Browser auf ein BufferedImage zeichnen. Leider wird entweder nur ein schwarzer oder ein grauer Hintergrund gezeichnet. Kann es sein das die paint oder print Methode des JDIC Browsers nicht richtig bzw. garnicht funktioniert.
Vg Erdal
ich möchte den Inhalt des JDIC Browser auf ein BufferedImage zeichnen. Leider wird entweder nur ein schwarzer oder ein grauer Hintergrund gezeichnet. Kann es sein das die paint oder print Methode des JDIC Browsers nicht richtig bzw. garnicht funktioniert.
Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
import org.jdesktop.jdic.browser.*;
public class SimpleBrowser {
public static void main(String[] args) {
final JFrame frame = new JFrame("JDIC API Demo - SimpleBrowser");
JButton button = new JButton("Save");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final WebBrowser webBrowser = new WebBrowser();
try {
webBrowser.setURL(new URL("http://www.tutorials.de"));
} catch (MalformedURLException e) {
System.out.println(e.getMessage());
return;
}
final JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setPreferredSize(new Dimension(700, 500));
panel.add(webBrowser, BorderLayout.CENTER);
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
final BufferedImage b1 = new BufferedImage(frame.getWidth(), frame
.getHeight(), BufferedImage.TYPE_INT_RGB);
final BufferedImage b2 = new BufferedImage(panel.getWidth(), frame
.getHeight(), BufferedImage.TYPE_INT_RGB);
final BufferedImage b3 = new BufferedImage(webBrowser.getWidth(), frame
.getHeight(), BufferedImage.TYPE_INT_RGB);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.paint(b1.getGraphics());
panel.paint(b2.getGraphics());
webBrowser.paint(b3.getGraphics());
try {
ImageIO.write(b1, "JPEG",new File("frame.jpg"));
ImageIO.write(b2, "JPEG",new File("panel.jpg"));
ImageIO.write(b3, "JPEG",new File("browser.jpg"));
} catch (IOException e1) {
e1.printStackTrace();
}
frame.print(b1.getGraphics());
panel.paintAll(b2.getGraphics());
webBrowser.printAll(b3.getGraphics());
try {
ImageIO.write(b1, "JPEG",new File("frame2.jpg"));
ImageIO.write(b2, "JPEG",new File("panel2.jpg"));
ImageIO.write(b3, "JPEG",new File("browser2.jpg"));
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
}
}
Vg Erdal