[Java] Bild aus dem Internet

virtualmarc

Redshirt
Mitglied seit
16.10.2008
Beiträge
2
Renomée
0
Standort
Essen
Ich habe ein kleines Java Programm geschrieben. Das mit dem Bildern aus dem Internet holen geht schon, allerdings nicht wenn man die URL per TextFeld angibt.

Hie erstmal mein Code:

Code:
/*
 * mainfrm.java
 *
 * Created on 15. Oktober 2008, 21:16
 */

/**
 *
 * @author  Marc
 */
import java.awt.MediaTracker;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.net.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.html.*;

public class mainfrm extends javax.swing.JFrame {
    
    /** Creates new form mainfrm */
    public mainfrm() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setLabelFor(jLabel1);
        jLabel1.setPreferredSize(new java.awt.Dimension(1024, 768));

        jTextField1.setText("XXXX://"); // Wegen Spamschutz geändert

        jButton1.setText("Suchen");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 392, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jButton1))
                    .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(22, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(19, 19, 19)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jButton1))
                .add(14, 14, 14)
                .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
        String text;
        text = jTextField1.getText();
        String base64;
        base64 = Base64.base64Encode(text); // Erstellt die eingegebene URL als Base64
        zeigebild(base64); // Ruft die Funktion zeigebild auf
        
    }
    
    public static void zeigebild(String url) {
        try {
        ImageIcon i = null;
        String newURL;
        String b64;
        b64 = url; // Speichert den Inhalt aus url in b64
        newURL = "XXXX://xxx.thumbmaker.net/thumb/"+b64+"/pic.png"; // Generiert die URL (musste ich wegen dem Spamschutz ändern!
        URL ImgURL;
        ImgURL = new URL(newURL);
        //JOptionPane.showMessageDialog(null, ImgURL);
	i = new ImageIcon(ImgURL);
	while ( i.getImageLoadStatus() == MediaTracker.LOADING );
        i.setImageObserver(jLabel1);
        jLabel1.setIcon(i);
        }
        catch (Exception e)
        {}
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) throws Exception {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new mainfrm().setVisible(true);
            }
        });
        
    }
    
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private static javax.swing.JLabel jLabel1;
    private static javax.swing.JTextField jTextField1;
    // End of variables declaration
    
}

Ich bedanke mich jetzt schonmal für jede Antwort!
 
Lass dir doch mal die URL in der zeigeBild nochmal auf der Standardausgabe ausgeben. Ich tippe mal, dass da irgendwas schiefläuft, wenn es ansonsten geht (url per Hand eingeben geht ja offenbar wie du sagst).
 
Zurück
Oben Unten