O meu código esta funcionando, o único problema é que demora muito para carregar as imagens, usando um link de imagem da internet ou mesmo o JFileChooser.
Só aparece a imgem quando eu minimizo a tela e restauro ela novamente, ai a imagem aparece.
Outra coisa, dependendo da imagem, se for muito pequena, ela não fica centralizada na tela.
E quando abre o aplicativo, o mesmo vem minimizado.
o código:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/*
* @author Pixes
*/
class Janela extends Frame{
Label lb_Endereco;
Label lb_Arquivo;
Label lb_Mensagem;
Label lb_NomeArquivo;
Button bt_Carregar;
Button bt_ir;
Panel pn_Imagem = new Panel();
JTextField tf_URL;
JFileChooser Ch_novo;
JFileChooser chooser = new JFileChooser();
public Janela() throws IOException{
{
lb_Endereco = new Label("Insira a URL:");
lb_Arquivo = new Label("Arquivo interno:");
lb_Mensagem = new Label("Identificações ...");
tf_URL = new JTextField(28);
lb_NomeArquivo = new Label("");
bt_Carregar = new Button("Arquivo");
pn_Imagem = new Panel ();
bt_ir = new Button("Ir");
Panel painelNorte = new Panel();
Panel Central = new Panel();
painelNorte.setLayout(new GridLayout(2,3));
painelNorte.setBackground(Color.white);
Central.setBackground(Color.blue);
painelNorte.add(lb_Endereco);
painelNorte.add(tf_URL);
painelNorte.add(bt_ir);
painelNorte.add(new Panel());
painelNorte.add(lb_Arquivo);
painelNorte.add(lb_NomeArquivo);
painelNorte.add(bt_Carregar);
Central.add(pn_Imagem);
lb_Mensagem.setBackground(Color.white);
lb_Mensagem.setForeground(Color.red);
this.setLayout(new BorderLayout());
this.add("North", painelNorte);
this.add("Center", Central);
this.add("South", lb_Mensagem);
bt_ir.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(tf_URL.getText().trim().equals("")){
JOptionPane.showMessageDialog(null, "Escreva algo no endereço");
}if(!tf_URL.getText().trim().equals("")){
String valor = tf_URL.getText();
Image image = null;
{try {
URL url = new URL(valor);
image = ImageIO.read(url);
} catch (IOException ex) {
}
}
JLabel label1 = new JLabel(new ImageIcon(image));
pn_Imagem.add(label1, BorderLayout.CENTER);
pn_Imagem.setVisible(true);
lb_Mensagem.setText(" Esa é uma nova informação ");
}
}
});
bt_Carregar.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e){
Image image = null;
JFileChooser arquivo = new JFileChooser();
int res = arquivo.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File arquivos = arquivo.getSelectedFile();
{try {
image = ImageIO.read(arquivos);
} catch (IOException ex) {
}
}
JLabel label1 = new JLabel(new ImageIcon(image));
pn_Imagem.add(label1, BorderLayout.CENTER);
pn_Imagem.setVisible(true);
lb_Mensagem.setText(" Essa é uma nova informação ");
}else
JOptionPane.showMessageDialog(null, "Voce nao selecionou nenhum arquivo.");
}
});
}
}
}
public class Olha{
public static void main(String argumentos[]) throws IOException{
Janela jan = new Janela();
TratEventosJan trat = new TratEventosJan();
jan.addWindowListener(trat);
jan.show();
}
}
class TratEventosJan extends WindowAdapter{
@Override
public void windowClosing(WindowEvent evento){
System.exit(0);
}
}