FileFilter e JFileChooser[FINALIZADO]

2 respostas
C
package br.pucpr.windown;

import java.io.*;
import javax.swing.*;

public class FileChooser {
	public FileChooser(){
		JFileChooser arquivoImagem = new JFileChooser(new File(""));
		arquivoImagem.setFileSelectionMode( JFileChooser.FILES_ONLY );	
		arquivoImagem.addChoosableFileFilter(new MyFilter());
		arquivoImagem.setVisible(true);
		if( arquivoImagem.showSaveDialog( null) == javax.swing.JFileChooser.CANCEL_OPTION)
			return;
		
		File arquivoNome = new File("");
		
		if( arquivoNome == null || arquivoNome.getName().equals(""))
			JOptionPane.showMessageDialog( null, "Arquivo Inválido","Arquivo Inválido", JOptionPane.ERROR_MESSAGE );
		else{
			try
			{
				PrintWriter out
				= new PrintWriter(new BufferedWriter(new FileWriter( arquivoNome )));
				out.println( "Colocar o objeto que tem que salvar" );
				out.close();					
			}catch(Exception e){
				JOptionPane.showMessageDialog(null,"Erro ao gravar arquivo");
			}				
		}
		
	}
}
class MyFilter extends javax.swing.filechooser.FileFilter {
	public boolean accept(File file) {
		String filename = file.getName();
		return filename.endsWith(".dat");
	}
	public String getDescription() {
		return ".dat";
	}
}

A duvida eh a seguinte como colocar mais uma opção na hora de salvar. Tipo eu preciso salvar como .dat e .xml Como é que eu faço???

E quando eu clicar em salvar como eu sei o q ta selecionado??

Obrigado

2 Respostas

T
public boolean accept(File file) {
 		String filename = file.getName().toLowerCase();
 		return filename.endsWith(".dat") || filename.endsWith(".xml");
 	}
 	public String getDescription() {
 		return "Arquivos de dados (*.dat, *.xml)";
 	}
C

consegui.

public class FileChooser {
	public FileChooser(){
		File arquivoNome = new File("imagem");
		JFileChooser arquivoImagem = new JFileChooser(arquivoNome);
		arquivoImagem.setFileSelectionMode( JFileChooser.FILES_ONLY );	
		arquivoImagem.addChoosableFileFilter(new MyFilter());
		arquivoImagem.addChoosableFileFilter(new MyFilter1());
		arquivoImagem.setVisible(true);
		if( arquivoImagem.showSaveDialog( null) == javax.swing.JFileChooser.CANCEL_OPTION)
			return;
				
		if( arquivoNome.getName().equals(""))
			JOptionPane.showMessageDialog( null, "Arquivo Inválido","Arquivo Inválido", JOptionPane.ERROR_MESSAGE );
		else{
			if(arquivoImagem.getFileFilter().getDescription().equals(".xml")){
				/*
				 * gravar em xml
				 * 
				 */
			}
			else{
				if(arquivoImagem.getFileFilter().getDescription().equals(".dat")){
					/*
					 * gravar em serializable
					 * 
					 */
					try
					{
						PrintWriter out
						= new PrintWriter(new BufferedWriter(new FileWriter( arquivoNome )));
						out.println( "Colocar o objeto que tem que salvar" );
						out.close();					
					}catch(Exception e){
						JOptionPane.showMessageDialog(null,"Erro ao gravar arquivo");
					}		
				}
				else{
					JOptionPane.showMessageDialog( null, "Arquivo Inválido, selecione uma extenção","Arquivo Inválido, selecione uma extenção", JOptionPane.ERROR_MESSAGE );
					return;
				}
			}
		
		}
		
	}
}
class MyFilter extends javax.swing.filechooser.FileFilter {
  	public boolean accept(File file) {
  		String filename = file.getName().toLowerCase();
  		return filename.endsWith(".dat");
  	}
  	public String getDescription() {
  		return ".dat";
  	}
}
class MyFilter1 extends javax.swing.filechooser.FileFilter {
  	public boolean accept(File file) {
  		String filename = file.getName().toLowerCase();
  		return filename.endsWith(".xml");
  	}
  	public String getDescription() {
  		return ".xml";
  	}
}
Criado 18 de maio de 2005
Ultima resposta 18 de mai. de 2005
Respostas 2
Participantes 2