2Danke
ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
1298
1298
EMPFEHLEN
-
Hallo Leute,
mitkann man lokalgespeicherte Bilder ja z.B. auf einem Label o.ä. anzeigen. Nun möchte ich aber kein Bild von meiner Platte anzeigen, sondern eins aus dem Web. Es funktioniert so zwar nicht, aber rein logisch und um zu verdeutlichen, was ich will müsste esCode :1
Icon ico = new ImageIcon("C:\test.png");lauten. Ich hoffe ihr versteht mein Dilemma und könnt mir helfen: ich möchte gerne ein Bild aus dem Internet beispielsweise auf einem Label anzeigen.Code :1
Icon ico = new ImageIcon("htttp://www.example.de/test.png/");
Beste Grüße/
With best regards,
Moe
-
19.08.09 08:30 #2
Moin,
doch, jedoch musst Du statt einem String eine URL übergeben !!
Etwa so:
Code :1 2
ImageIcon ico = new ImageIcon( new URL("http://www.example.de/test.png/") );
Weitere Infos findest Du bspw. hier:
http://www.straub.as/java/awt/Image_...creenShot.html
Gruß
KlausGeändert von vfl_freak (19.08.09 um 08:31 Uhr) Grund: eine fehlende Klammer ;-)
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Hm, also bei mir funktioniert das leider nicht. Es wird zwar keine Exception geschmissen und der Rest des Programms läuft auch nach wie vor einwandfrei, aber das Bild wird einfach nicht angezeigt.
-
19.08.09 10:13 #4
hmm, seltsam ....
Sehe gerade, dass der letzte Slash im String überflüssig ist und vlt. Probleme macht.
Du kannst auch versuchen, vorher die URL zu verifizieren ....
Was sagt denn der Debugger ? ? ?
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Das Seltsame ist, dass wenn ich als URL keine Internetadresse, sondern einen lokalen Bildpfad angebe:
hat er überhaupt keine Probleme damit, das Bild anzuzeigen. Aber sobald er auf irgendein Image im Web zugreifen soll zeigt er einfach gar nix mehr an.Code :1
URL url = new URL("file:///H:/example/test.png");
Um gleich voreilige Schlüsse vorwegzunehmen: eine Internetverbindung besteht, ein großer Teil des Programm greift auf Web zu und dort treten keinerlei Probleme auf
-
19.08.09 10:49 #6
wie gesagt, Du könntest mal versuchen, vor dem Zugriff die URL zu validieren. Ich mache das mit folgender Methode:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
private boolean validateUrl(URL url) { boolean bLoadOK = true; HttpURLConnection httpcon = null; int responsecode = -1; if ( (bLoadOK) && (url != null)) { try { String strTheHostIP = InetAddress.getByName(url.getHost()).getHostAddress() ; String strTheHostname = InetAddress.getByName(url.getHost()).getHostName(); int thePort = url.getPort(); String thePath = url.getPath(); URL theURL = null; if (thePort == -1) { theURL = new URL("http://" + strTheHostIP + thePath); } else { theURL = new URL("http://" + strTheHostIP + ":" + thePort + thePath); } httpcon = (HttpURLConnection) theURL.openConnection(); httpcon.setRequestProperty( "Host", strTheHostname); responsecode = httpcon.getResponseCode(); } catch (IOException ex1) { bLoadOK = false; } } if (responsecode != java.net.HttpURLConnection.HTTP_OK) // 200 -> HTTP_OK { bLoadOK = false; } else { bLoadOK = true; } return bLoadOK; } // validateUrl
Das müßte eigentlich alles Java-Standard sein ... sonst bitte ggf. nachfragen!
Kann es ggf. sein, das Ein Proxy-Server den Bildzugriff verhindert? Damit ich hatte ich vor geraumer Zeit auch schon mal Probleme ....
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Die Seite scheint valide zu sein. Ich weiß nicht, ob für eine Java Applikation andere Proxyeinstellungen gelten als für mich, aber ich kann mir die Bilder ohne Probleme anschauen. Ich bin echt ratlos
-
Hm komisch..
Du verrätst nicht, wo du den Bildpfad hebekommst. Ich hatte ma ne ähnliches Problem.
Da habe ich die URLdaten aus na .properties datei gelesen und in der datei war ein Leerzeichen zu viel(also in der Zeile der url) .. und so hat er die url nicht laden können.
Wenn die URL wirklich richtig ist aber es dennoch nicht geht, dann poste doch mal die URL, damit andere ma testen können, ob das bei ihen auch nicht geht... .
-
z.B. die hier: http://www.webshotspro.com/gd/show.p...7a11dcb57d.jpg
-
Hm bei mir gehts:
Teste mal die Programme bei dir:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
public class II { public static void main(String args[]) throws MalformedURLException { JFrame f = new JFrame(); ImageIcon ii = new ImageIcon( new URL( "http://www.webshotspro.com/gd/show.php/400x300/screenshots/cff81936b955dfdecbdd987a11dcb57d.jpg")); System.out.println(ii); System.out.println(ii.getDescription()); switch (ii.getImageLoadStatus()) { case MediaTracker.ABORTED: System.out.println("ABORTED"); break; case MediaTracker.COMPLETE: System.out.println("COMPLETE"); break; case MediaTracker.ERRORED: System.out.println("ERRORED"); break; case MediaTracker.LOADING: System.out.println("LOADING"); break; default: break; } f.add(new JLabel("Bild", ii, JLabel.LEFT)); f.pack(); f.setVisible(true); } }
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
import java.awt.Canvas; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; import javax.swing.JFrame; public class II2 { static BufferedImage i; public static void main(String args[]) throws IOException { JFrame f = new JFrame(); i = ImageIO .read(new URL( "http://www.webshotspro.com/gd/show.php/400x300/screenshots/cff81936b955dfdecbdd987a11dcb57d.jpg")); f.add(new Canvas() { @Override public void paint(Graphics g) { g.drawImage(i, 0, 0, this); } }); f.setSize(100, 100); f.setVisible(true); } }
-
Hab es ausprobiert, aber da bekomme ich folgende Exception:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Exception in thread "main" javax.imageio.IIOException: Can't get input stream from URL! at javax.imageio.ImageIO.read(Unknown Source) at II2.main(II2.java:17) Caused by: java.net.ConnectException: Connection timed out: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) ... 2 more
Woran kann das liegen?
//EDIT: Jetzt kommt zwar keine Exception, allerdings gibt er in der Konsoleaus.Code :1 2 3
http://www.webshotspro.com/gd/show.php/400x300/screenshots/cff81936b955dfdecbdd987a11dcb57d.jpg http://www.webshotspro.com/gd/show.php/400x300/screenshots/cff81936b955dfdecbdd987a11dcb57d.jpg ERRORED
Geändert von moemaster (24.08.09 um 09:49 Uhr)
-
In beiden Fällen ist das Problem: Can't get input stream from URL
Vll. bist du über einen Proxy im Internet... schau dir das mal an:
http://forums.sun.com/thread.jspa?threadID=5381499
Da man ja nie weiß, wie lang es den Link noch gibt poste ich nun nochma was da interessantes steht:
Kriegst du dein Bild damit?Code java:1 2 3 4 5 6 7 8 9 10 11 12
SocketAddress address = new InetSocketAddress(hostName, port); // Create an HTTP Proxy using the above SocketAddress. Proxy proxy = new Proxy(Proxy.Type.HTTP, address); URL url = new URL("www.example.com/image.jpg"); // Open a connection to the URL using the proxy information. URLConnection conn = url.openConnection(proxy); InputStream inStream = conn.getInputStream(); BufferedImage image = ImageIO.read(url);
-
Es lag am Proxy
Vielen Dank, es funktioniert 
//CLOSED
Ähnliche Themen
-
Bilder anzeigen
Von chriss_2oo4 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 02.09.10, 18:22 -
JSF Applikation innerhalb einer JSF Applikation
Von Chefkoch333 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 12.10.07, 13:21 -
Bilder für Applikation?
Von tinella im Forum JavaAntworten: 7Letzter Beitrag: 26.03.07, 21:54 -
Applikation die mit webstart geladen wurde, zeigt keine Bilder an...
Von trendyandy im Forum JavaAntworten: 2Letzter Beitrag: 22.12.05, 11:43 -
.NET versus viele Bilder in Applikation
Von Celesth im Forum .NET ArchivAntworten: 3Letzter Beitrag: 18.04.04, 13:05





Zitieren
Login





