Opa, tenho duvidas em como exibir uma imagem

Eae galera blz, eu queria saber que componente devo usar para obter na tela uma caixa onde será exibida uma imagem, tipo, quero buscar uma imagem em um local, e exibi-la na tela, naum tenhu idéia de como fazer issu!!!rs, e ainda mais, quero salvar-la no postgresql…

aí meu código ta assim::

import java.awt.;
import java.awt.event.
;

import javax.swing.*;

import sun.tools.jar.JarImageSource;

public class JnPrincipal extends JFrame implements ActionListener {
private JTabbedPane tabs;
private JButton btAnt;
private JButton btProx;

public JnPrincipal(){
	super("Janela Principal");
	//ABA 1
	tabs = new JTabbedPane();
	JPanel panel = new JPanel();
	ImageIcon icon = new ImageIcon("diam-verm.gif");
	JLabel lbnome = new JLabel("Nome: ");
		JTextField tfnome = new JTextField(20);
	JLabel lbcidade = new JLabel("Cidade: ");
		JTextField tfcidade = new JTextField(30);
	JLabel lbcontato = new JLabel("Contato: ");
		JTextField tfcontato = new JTextField(30);
	JLabel lbrg = new JLabel("RG: ");
		JTextField tfrg = new JTextField(10);
	JLabel lbfone = new JLabel("Telefone: ");
		JTextField tffone = new JTextField(11);
	JLabel lbemail = new JLabel("E-mail: ");
		JTextField tfemail = new JTextField(30);
	JLabel lbend = new JLabel("Endereço: ");
		JTextField tfend = new JTextField(30);
	JLabel lbfoto = new JLabel("Foto: ");
		//JarImageSource
	
	/*
	 response.setContentType("image/png");
	 OutputStream os = response.getOutputStream();
	 ImageIO.write(buffer, "png", os);
	 os.close();  

*/
PicturePanel picp = new PicturePanel();
//====ADD===
panel.add(lbnome);
panel.add(tfnome);
panel.add(lbcidade);
panel.add(tfcidade);
panel.add(lbcontato);
panel.add(tfcontato);
panel.add(lbrg);
panel.add(tfrg);
panel.add(lbfone);
panel.add(tffone);
panel.add(lbend);
panel.add(tfend);
panel.add(lbemail);
panel.add(tfemail);
panel.add(lbfoto);
panel.add(picp);

	//ta.setLineWrap(true); ta.setWrapStyleWord(true);
	tabs.addTab("Entrada", new ImageIcon("diam-azul.gif"), panel);
	
	//ABA 2	
	JPanel panel2 = new JPanel();
	panel2.setBackground(Color.white);
	tabs.addTab("Saída", new ImageIcon("diam-lilas.gif"), panel2);
	//ABA 3
	panel = new JPanel();
	panel.add(new JLabel("Teste"));
	tabs.addTab("Relatorio", new ImageIcon("diam-azul.gif"), panel);
	//ABA 4
	JPanel panel4 = new JPanel();
	tabs.addTab("Localizar", new ImageIcon("diam-verde.gif"), panel4);
	getContentPane().add(tabs, "Center");
	//Painel de COntrole
	JPanel p1 = new JPanel(), p2 = new JPanel(new GridLayout(1,2,5,5));
	p2.add(btAnt = new JButton("Anterior"));
	p2.add(btProx = new JButton("Próximo"));
	p1.add(p2);
	getContentPane().add(p1, "North");
	btAnt.addActionListener(this);
	btProx.addActionListener(this);
	setSize(550,480);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			
}

public void actionPerformed(ActionEvent e) {
int i = tabs.getSelectedIndex();
if(e.getSource()==btAnt)
tabs.setSelectedIndex(i>0?i-1:tabs.getTabCount()-1);
else
tabs.setSelectedIndex(i<tabs.getTabCount()-1?i+1:0);
}

public static void main(String[] args){
new JnPrincipal().show();

}

// TODO Auto-generated method stub

}

Por enquanto ele está somente montando a janela com alguns componentes, preciso saber como colocar esse componente de foto ae…
ajuda eu ??!!!???
Vlw!

Estou trabalhando em uma aplicação que usa muito exibição de imagens, inclusive possibilitando que o usuário mova e redimensione as imagens com o mouse… Eu faço tudo com JLabel
Crio objetos da da classe ImageIcon, insiro as imagens neles usando
imagem.getScaledInstance() e ai passo estes icons para label.setIcon().
Funciona que é uma beleza!

Dá uma estudada nas classes:

  • JLabel
  • ImageIcon
  • Image

Abraço!

tipo, a minha seria assim, colocaria um campo para o usuario buscar a imagem, e depois ela seria exibida em algum outro lugar…

Vc pode me mandar um exemplo do seu??

Vlw!!!

[code]// Pega a imagem pelo endereço dela e coloca num ImageIcon object
ImageIcon suaImagem = new ImageIcon(“icons/mini_logo.gif”);

      // Coloca a ImageIcon num JLabel
      JLabel labelDaSuaImagem = new JLabel(suaImagem);[/code]

Depois é só vc colocar o label num painel ou dialog q vc vai exibir e pronto.

flw

Vo tentar aki!
vlw

aí, fiz uma coisa diferente dos Labels, coloquei um FileDialog e tento chamar a imagem de um local mas naum exibe nada!!!..

e tb ta com um erro que naum consigui resolver até agora…

o erro ta ae:

public void actionPerformed(ActionEvent e) {
fd.show();
if(fd.getFile()!= null){
if(imfoto != null){
tfcaminho.setText(fd.getDirectory()+fd.getFile());
imfoto = tk.getImage(tfcaminho.getText());
repaint();
}
}
public void paint(Graphics g){
if(imfoto != null){
Dimension apl = getSize();
int w = imfoto.getWidth(this), h = imfoto.getHeight(this);
g.drawImage(imfoto, (apl.width-w)/2, (apl.height-h)/2, this);
}
super.paint(g);
}

int i = tabs.getSelectedIndex();
if(e.getSource()==btAnt)
	tabs.setSelectedIndex(i>0?i-1:tabs.getTabCount()-1);
else
	tabs.setSelectedIndex(i<tabs.getTabCount()-1?i+1:0);

}

no ‘public void paint’ está acontecendo issu:

void is an invalid type for variable paint

q issu?
vlw!

Olha, seria mais ou menos assim:
(podem haver problemas de sintaxe, estou escrevendo direto aqui, de cabeça…)

		JFileChooser fileChooser = new JFileChooser();
		fileChooser.showOpenDialog(null);
		File arquivo = fileChooser.getSelectedFile();		
		MediaTracker mediaTracker = new MediaTracker(null);
		Image imagem = Toolkit.getDefaultToolkit().getImage(arquivo.getAbsolutePath());
		/*isso é importante para impedir que a execução
		prossiga sem q a imagem tenha sido carregada por completo*/
		mediaTracker.addImage(imagem, 0);
		try{
			mediaTracker.waitForAll();
		}
		catch(InterruptedException ie){}		

		ImageIcon icon = new ImageIcon(imagem);
		/*
		//Aqui vc tbm pode pegar uma instância redimensionada da sua imagem (neste exemplo a imagem com 2x seu tamanho original)
		ImageIcon icon = new ImageIcon(imagem.getScaledInstance(imagem.getWidth(null)*2,
									   imagem.getHeight(null)*2,
									   Image.SCALE_DEFAULT));
		*/		
		JLabel suaImagem = new JLabel(icon);
		suaImagem.setSize(new Dimension(icon.getIconWidth(), icon.getIconHeight()));
		
		seuFrame.add(suaImagem);

Mais ou menos isso :slight_smile:

Abraço!