Hi ich möchte ein Bild von Webseite in einer lokaler Swing Anwedung anzeigen
hier ein kleines Beispiel... das nicht klappt, mit der datei auf c, gehts mit dem ausm internet nicht...
muss ich das file vorher irgendwie runterladen,??
oder habe ich einen anderen fehler...
ist das mit dem MediaTracker ok, oder ist das veraltet? wie würdet ihr sowas lösen?
danke
hier ein kleines Beispiel... das nicht klappt, mit der datei auf c, gehts mit dem ausm internet nicht...
muss ich das file vorher irgendwie runterladen,??
Code:
..
url = new URL("http://"+this.domain+"/"+ghId+".html");
Connection connection = url.openConnection();
InputStream is = connection.getInputStream();
..
oder habe ich einen anderen fehler...
ist das mit dem MediaTracker ok, oder ist das veraltet? wie würdet ihr sowas lösen?
danke
Code:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class TestImageShow extends JComponent{
//public static String filename = "http://www.radauer.com/test1.jpg";
public static String filename = "c:/test1.jpg";
public static int BORDER = 5;
private Image img;
public Image getImg() {
return img;
}
public void setImg(Image img) {
this.img = img;
this.repaint();
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
if(img!=null)
g2.drawImage(img, BORDER, BORDER, this);
}
@Override
public Dimension getPreferredSize() {
if(img!=null)
return new Dimension(img.getWidth(this)+2*BORDER, img.getHeight(this)+2*BORDER);
return new Dimension(300,300);
}
public static void main(String[] args) throws InterruptedException {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500, 500);
TestImageShow image = new TestImageShow();
f.add(image);
f.setVisible(true);
System.out.println("los");
Image img =f.getToolkit().getImage( filename );
MediaTracker mt = new MediaTracker(f);
mt.addImage(img,0);
mt.waitForAll();
image.setImg(img);
System.out.println("fertig");
}
}