Preview filechooser

Alguem saberia me dizer como eu faço, para que no meu filechooser, quando eu selecionasse uma imagem, aparecesse tipo uma amostra do lado, para saber qual imagem é esta???

Ah,mais uma coisa, e como eu faço para ter mais de um filtro de arquivo, por exemplo: um filtro para jpeg e bmp ao mesmo tempo!!!

valeu!!!

voce pode sobrescrever alguns metodos de FileFilter pra selecionar os tipos de arquivo:

fileChooser.setFileFilter( new FileFilter() { public boolean accept( File f ) { return f.getName().toLowerCase().endsWith( ".jpg" ) || f.getName().toLowerCase().endsWith( ".gif" ) || f.getName().toLowerCase().endsWith( ".bmp" ) || f.isDirectory(); } public String getDescription() { return "Arquivos de Imagem (*.jpg;*.gif;*.bmp)"; } } );

dessa forma eu defino um filtro para 3 tipos de arquivos ao mesmo tempo, nao sei como colocar para seleciona-los separadamente… :sad: quanto à exibicao da imagem de lado, é uma duvida que tambem tenho e estou procurando, se voce achar posta aqui por favor…

espero ter ajudado

blz, posto sim, sabe o exemplo de filechooser que vem com o pacote jsdk!? entao, neste exemplo tem esse esquema, mas eu achei um pouco confuso, ja que nao sou um expert em java, mas se eu achar a solução eu posto!!!
Valeu!!!
Abraço!!!

cara, numa boa, eu teste esse codigo que vc postou e nao funcionou muitobem, ele so mostra os “.gif”, mas eu descobri uma forma de fazer isto, inclusive de adicionar quantos filtros vc quiser, é só seguir o mesmo padrao…

Código:

[code]
JFileChooser chooser = new JFileChooser(caminho);

jpegFilter = new ExampleFileFilter(“jpeg”, “JPEG Compressed Image Files”);
gifFilter = new ExampleFileFilter(“gif”, “GIF Image Files”);
bothFilter = new ExampleFileFilter(new String[] {“jpeg”, “gif”}, “JPEG and GIF Image Files”);

chooser.addChoosableFileFilter(bothFilter);
chooser.addChoosableFileFilter(jpgFilter);
chooser.addChoosableFileFilter(gifFilter);[/code]

Entao, sobre a outra duvida, de se ter um preview da imagem no FileChooser, acabei de descobrir como tb…

primeiro, declara uma variavel:

FilePreviewer previewer;

Cria o FileChooser:

JFileChooser chooser = new JFileChooser();

Entao:

previewer = new FilePreviewer(chooser);
chooser.setAccessory(previewer);

Comigo funcionou deste jeito…

valeu pelas respostas…vou testar o previewer que voce mandou…
vou tentar usar o seu filter tb…nao sei pq o que eu mandei nao funcionou…mas mesmo assim acho o seu mais certo
[]'s

[quote=“danmotta”]Entao, sobre a outra duvida, de se ter um preview da imagem no FileChooser, acabei de descobrir como tb…

primeiro, declara uma variavel:

FilePreviewer previewer;

Cria o FileChooser:

JFileChooser chooser = new JFileChooser();

Entao:

previewer = new FilePreviewer(chooser);
chooser.setAccessory(previewer);

Comigo funcionou deste jeito…[/quote]
cara, tem como voce citar em que pacotes ficam essas classes? FilePreviewer e ExampleFileFilter ? minha IDE nao reconheceu nenhuma…e eu tambem nao encontrei-as na API

desde ja agradeço…

É o seguinte, na minha aplicação, (eu nao sei se esse é o jeito certo, so sei que funcionou) eu procurei na pasta java_home(geralmete no c:\arquivos de programas\Java)\jdk1.5.0_02\demo\jfc\FileChooserDemo\src , e dentro deste caminho tem dois arquivos: ExempleFileView.java e ExempleFileFilter.java, eu nao sei como fazer para usar estes codigos sem copia-los para a sua propria aplicacao, entao, eu copiei o codigo de cada um dos dois, e adicionei dentro da classe principal da minha aplicacao, cada codigo como uma classe, dai funciona…

Cara, foi mal, coloque esta classe no seu codigo:

 class FilePreviewer extends JComponent implements PropertyChangeListener 
    {
		ImageIcon thumbnail = null;

		public FilePreviewer(JFileChooser fc) 
		{
	    	setPreferredSize(new Dimension(100, 50));
	    	fc.addPropertyChangeListener(this);
		}
		public void loadImage(File f) 
		{
            if (f == null) 
            {
                thumbnail = null;
            } else
            {
				ImageIcon tmpIcon = new ImageIcon(f.getPath());
				if(tmpIcon.getIconWidth() > 90) 
				{
		    		thumbnail = new ImageIcon(
					tmpIcon.getImage().getScaledInstance(90, -1, Image.SCALE_DEFAULT));
				} else 
				{
		    		thumbnail = tmpIcon;
				}
	    	}
		}
		public void propertyChange(PropertyChangeEvent e) 
		{
	    	String prop = e.getPropertyName();
	    	if(prop == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) 
	    	{
				if(isShowing()) 
				{
                    loadImage((File) e.getNewValue());
		    		repaint();
				}
	    	}
		}
		public void paint(Graphics g) 
		{
	    	if(thumbnail != null) 
	    	{
				int x = getWidth()/2 - thumbnail.getIconWidth()/2;
				int y = getHeight()/2 - thumbnail.getIconHeight()/2;
				if(y < 0) 
				{
		    		y = 0;
				}
				if(x < 5) 
				{
			    	x = 5;
				}
				thumbnail.paintIcon(this, g, x, y);
	    	}
		}
    }