[Resolvido] Pegar o destino com JFileChooser

9 respostas
pintofree

pessoal to criando um sistema de backup para uma aplicação, porem quero q o usuario escolha onde será salvo o backup para isto estou tentando pegar o destino escolhido, pelo usuario utilizando JFileChooser, porem qnd escolho o caminho e clico em salvar, ele sobe um diretorio, estou utilizando o Netbeans 6.
As cofigurações do JFileChooser ate agora estao assim

private void initComponents() {

        jFileChooser1 = new javax.swing.JFileChooser();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setName("Form"); // NOI18N

        jFileChooser1.setDialogType(javax.swing.JFileChooser.SAVE_DIALOG);
        jFileChooser1.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
        jFileChooser1.setName("jFileChooser1"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jFileChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(74, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(23, 23, 23)
                .addComponent(jFileChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

9 Respostas

davidbuzatto

Vc está usando um filechoose para salvar, use um para abrir. (OPEN_DIALOG)

pintofree

Testei aki com o Open_Dialog e deu na mesma. sem falar q o cancelar nao funciona.

To achando q eu nao to sabendo e trabalhando com os botoes do JFileChooser, alguem ai ja mexeu com ele pra me dar uma luz?

davidbuzatto
JFileChooser fc = new JFileChooser();
fc.setDialogType( JFileChooser.OPEN_DIALOG );
fc.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
fc.setMultiSelectionEnabled( false );

File f = null;

if ( fc.showOpenDialog( null ) == JFileChooser.APPROVE_OPTION )
    f = fc.getSelectedFile();

System.out.println( f );

Até mais!

pintofree

David deu certo aki o esquema do caminho ja to conseguindo pegar ele certinho, o que nao consigo agora é achar o evento criado quando clico no botão salvar, preciso deste evento para atravez dele fechar o Jdialog de backup

davidbuzatto

Não entendi sua dúvida.

Você quer ouvir o evento de clicar no botão do JFileChooser?

pintofree

davidbuzatto:
Não entendi sua dúvida.

Você quer ouvir o evento de clicar no botão do JFileChooser?

sim achar o evento gerado qnd clico no botao open do filechooser

davidbuzatto

Creio que isso não seja possível.

Você pode verificar qual botão foi clicado, comparando o retorndo de um dos métodos de abertura de diálodo (showDialog, showOpenDialog e showSaveDialog) com as constantes que indicam o retorno (como eu fiz com JFileChooser.APPROVE_OPTION).

Mas alterar o tratamento do botão não vai ser possível, a não ser que você crie seu próprio JFileChooser, que eu acho que é perda de tempo.

Porque você precisaria disso?

pintofree

Ja deu certo aki veio, eu que tava viajando na maionese, realmente era se eu usar o JFileChooser.APPROVE_OPTION, pra criar o que preciso. Nao estou acostumado com interfaces graficas eu so programa para web, agora que to peguei um projeto com J2SE.

Valeus ai a ajuda.

davidbuzatto

:wink:

Criado 14 de fevereiro de 2008
Ultima resposta 15 de fev. de 2008
Respostas 9
Participantes 2