Ajuda em jfile

12 respostas
B

Pessoal to com um probleminha em um jfilechooser eu chamo um formulario com jfilechooser ele abre tudo normal com as coisas que eu quero mas o problema é que quando seleciono a opcao cancel invez de ele apenas imprimir o que eu coloquei ele fexa a tela do jfilechooser e abre uma nova tela em branco sem nada! oq eh essa coisa maluca? alguem ajuda uma pobre iniciante?

public File getFile() {
int result = jfilechooser.showOpenDialog(this);
if(result == JFileChooser.CANCEL_OPTION) {
System.out.println("cancel");
return null;
else
return jfilechooser.getSelectedFile();
}
}

eu uso o netbeans e chamo essa funcao depois do initComponents();

Agradeco a atencao!

12 Respostas

R

não sei se estou certo, mas se fosse o contrario…

public File getFile() {

int result = jfilechooser.showOpenDialog(this);

if(result == JFileChooser.APPROVE_OPTION) {

System.out.println(aprovado);

return jfilechooser.getSelectedFile();

}

}catch (FileNotFoundException e){

e.printStackTrace();

}
thiagocg

tente algo como:

JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = fileChooser.showOpenDialog(fileChooser);
switch(result){
	case JFileChooser.APPROVE_OPTION:
		File file = fileChooser.getSelectedFile();
	break;
		
	case JFileChooser.CANCEL_OPTION:
		return;
}

[]'s

B

no case do cancel option o return fico com uma linha de erro falando q precisa de um retorno nao ta aceitando apenas return;

thiagocg

desculpa não me atentei que seu metodo retornava um File.

O metodo completo:

private File getFile() {
		File file = null;
		try {
			JFileChooser fileChooser = new JFileChooser();  
			fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);  
			int result = fileChooser.showOpenDialog(fileChooser);  
			switch(result){  
			case JFileChooser.APPROVE_OPTION:  
				file = fileChooser.getSelectedFile();  
				break;  

			case JFileChooser.CANCEL_OPTION:  
				return null;  
			} 			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return file;
	}

O codigo pode ser melhorado fiz correndo aqui no serviço.

[]'s

B

entao mas to muito confusa mas olha soh eu devo xamar esse metodo aonde no meu construtor? pq se eu xamo o metodo e aperto cancel ele aparece otro form em branco!

B

tentei isso e xamo esse metodo no meu construtor mas quando ele da o dispose em seguida abre mum form em branco ridiculamente!

int result = jfilechooser.showOpenDialog(this);
 if(result == JFileChooser.CANCEL_OPTION)
     dipose();
 else 
     system.out.println("como eu ti amo tricolor");

eu aperto o botao cancel ele fexa o form e abre um novo em branco!

thiagocg

Olha aqui nos teste que fiz, eu chamo o JFileChooser a partir de um metodo de um botão e não ocorre essa questão de abrir pag. em branco quando cancelo, pode ser que no seu caso como vc esta chamando do construtor o metodo e não tem o jframe ainda renderizado pode estar ocorrendo isso de abrir uma pagina em branco.

Tenta chamar esse metodo atraves de um botão.

[]'s

thiagocg

Se esse tricolor for o MAIOR DO MUNDO SÃO PAULO FUTEBOL CLUBE eu vou te ajudar…hahhhaahh

thiagocg

Posta sua classe toda ai pra eu dar uma olhada!

B
public class RestoreGUI extends JFrame {

    int resultado;
    String endereco = "endereco";

    /** Creates new form RestoreGUI */
    public RestoreGUI() {
        initComponents();
        jfc_restore.setCurrentDirectory(new File(endereco));
        jfc_restore.addChoosableFileFilter(new MyFilter());
        openFile();
    }


6-3-3 SPFC 

    public void openFile() {
        int result = jfc_restore.showOpenDialog(this);
        if(result == JFileChooser.CANCEL_OPTION)
            dispose();
        else
            System.out.println("else");
    }
thiagocg

no seu metodo openFile() quando vc faz:

jfc_restore.showOpenDialog(this);

vc esta passando com this o seu jframe, e depois quando vc faz:

# if(result == JFileChooser.CANCEL_OPTION) dispose();
vc esta dizendo, se “cancelar fecha o meu JFRAME”.

era isso mesmo que vc queria fazer?

B

sim quero se eu cancelar que ele apenas feche o jframe! mas ele faz o contrario ele fexa e depois abre um form em branco! em momento algum quero que ele abra um form em branco

Criado 7 de agosto de 2009
Ultima resposta 7 de ago. de 2009
Respostas 12
Participantes 3