como eh para salvar, então nao precisa de multi - extensão
como o cara vai salvar em .jpg e . gif
agora entendi melhor esse FileFilter e mudei um pouco o meu:
public class Filtro extends FileFilter {
private String filter;
private String description;
public Filtro( String filter, String description ){
setFilter( filter );
setDescription( description );
}
public void setFilter( String filter ){
if( filter != null )
this.filter = filter.toLowerCase();
}
public String getFilter(){
return filter;
}
public String getDescription(){
return description;
}
public void setDescription( String description ){
this.description = description;
}
public boolean accept( File f ){
if( f != null ){
if( f.isDirectory() ){
return true;
}
String extension = getExtension( f );
if( extension != null && extension.equals( filter ) ){
return true;
}
}
return false;
}
public String getExtension( File f ){
if( f != null ){
String fileName = f.getName();
int i = fileName.lastIndexOf( '.' );
if( i > 0 && i < fileName.length() - 1 ){
return fileName.substring( i + 1 ).toLowerCase();
}
}
return null;
}
}
agora no meu arquivo ta assim:
Filtro gifFilter = new Filtro( "gif", "bla" );
Filtro jpgFilter = new Filtro( "jpg", "bla" );
...
...
fileChooser.addChoosableFileFilter( gifFilter );
fileChooser.addChoosableFileFilter( jpgFilter );
...
File fileName = fileChooser.getSelectedFile();
...
Filtro filter = (Filtro)fileChooser.getFileFilter();
...
...
...
if( filter.getFilter().equals( gifFilter.getFilter() ) ){
//o construtor do ImageGif recebe um File
ImageGif gif = new ImageGif( validaFileName( fileName, filter ) );
}
else if( filter.getFilter().equals( jpgFilter.getFilter() ) ){
imageJpg jpg = new ImageJpg( validaFileName( fileName, filter ) );
}
Minha função validaFileName:
private File validaFileName( File f, Filtro filter ){
if( filter.getExtension( f ) == null || !filter.getExtension( f ).equals( filter.getFilter() ) ){
return new File( f.getName() + "." + filter.getFilter() );
}
return f;
}
Só que quando digito o nome do arquivo image.gif
funciona
mas quando digito image( pela logica era para ele acrescentar .gif)
nao funciona…
e nao sei se deixa alguma exeção sem printtrace, mas nao esta dando erro.
apenas nao acontece nada
EDITADO:
aff… a parada tava funcionando…
como tava dando apenas .getName não tava pegando o path inteira do arquivo… tava salvando em outro lugar e eu nem fragando
so mudei isso aki
[code]
private File validaFileName( File f, Filtro filter ){
if( filter.getExtension( f ) == null || !filter.getExtension( f ).equals( filter.getFilter() ) ) {
return new File( f.getAbsolutePath() + "." + filter.getFilter() );
}
return f;
}[/code]
vlws a duke… =)