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);
}
}
}