2016-10-07 1 views
0

Ich versuche, bestimmte Bilder über JButton herunterzuladen.So aktualisieren Sie JLabel, das ein Bild speichert

Das Formular startet, es gibt eine JTextBox, wo ich die ID schreibe, also sollte die Schaltfläche das Foto bekommen, aber ich weiß nicht wirklich, wie ich die JLabel aktualisieren soll, die ich verwende, um das Bild zu speichern und anzuzeigen.

Ich lege eine Standard-URL, so wenn es beginnt, ist immer das gleiche Bild zu zeigen.

Verwenden von JLabel ist die beste Möglichkeit, ein Bild zu speichern und anzuzeigen?

Ist es möglich, die Größe des Fotos zu ändern?

Dank


package fotoMatricula; 

import java.awt.EventQueue; 
import java.awt.Font; 
import java.awt.Image; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.IOException; 
import java.net.URL; 

import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 

public class FotoMatricula { 

private JFrame frame; 
private JTextField textField; 
private String foto; 

/** 
* Launch the application. 
*/ 
public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      try { 
       FotoMatricula window = new FotoMatricula(); 
       window.frame.setVisible(true); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 

/** 
* Create the application. 
*/ 
public FotoMatricula() { 
    initialize(); 
} 

/** 
* Initialize the contents of the frame. 
*/ 
public void initialize() { 
    Image image = null; 
    try { 
     URL url = new URL("https://charal.unacar.mx/fotos/103522.jpg"); 
     image = ImageIO.read(url); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    frame = new JFrame(); 
    frame.setBounds(100, 100, 391, 396); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    JLabel lblIntroduceTuMatrcula = new JLabel("Introduce tu matr\u00EDcula"); 
    lblIntroduceTuMatrcula.setFont(new Font("Tahoma", Font.PLAIN, 17)); 
    lblIntroduceTuMatrcula.setBounds(104, 11, 174, 24); 
    frame.getContentPane().add(lblIntroduceTuMatrcula); 

    textField = new JTextField(); 
    textField.setBounds(139, 46, 94, 20); 
    frame.getContentPane().add(textField); 
    textField.setColumns(10); 

    JLabel lblNewLabel = new JLabel(new ImageIcon(image)); 
    lblNewLabel.setBounds(89, 77, 202, 189); 
    frame.getContentPane().add(lblNewLabel); 


    JButton btnBuscar = new JButton("Buscar"); 
    btnBuscar.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      foto = textField.getText(); 
      lblNewLabel.setText(foto); 
     } 
    }); 
    btnBuscar.setBounds(139, 303, 89, 23); 
    frame.getContentPane().add(btnBuscar); 
    } 
} 
+0

Um das Symbol eines JLabel ändern Sie die verwenden können, 'setIcon (...)' Methode des Labels. – camickr

+0

Ich habe tatsächlich versucht, wie vor 10 Minuten, wenn ich auf die Schaltfläche klicken, verschwindet das Standardbild und das ist es, lädt das neue Bild nicht :( Ich legte eine System.out.println nur um zu überprüfen, ob die URL korrekt ist, und es ist –

Antwort

1

Do it, wie Sie Trog Initialisierung tat ... Versuchen Sie dies in Ihrem Action:

try 
{ 
    URL url2 = new URL (textField.getText()); 
    lblNewLabel.setIcon(new ImageIcon(ImageIO.read(url2))); 
} 
catch (Exception e) 
{ 

} 
+0

Ich löste es tatsächlich vor 10 Minuten! Unter Verwendung genau, was Sie schrieben, danke für die Antwort! Ich fügte auch dieses hinzu, um das Bild neues ImageIcon zu justieren (imagen.getScaledInstance (324, 455, imagen.SCALE_SMOOTH))) ; –

+0

@ David: Kein Problem! Überlege, ob du diese Antwort akzeptierst, denn sie löst dein Problem (selbst wenn du es alleine hast). Es könnte anderen helfen .. – Tim