Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema con script per finestra "apri"

    salve, ho un problema con la finestra apri, nel senso che si apre e mi mostra i file, ma quando clicco su un file per aprirlo non succede nulla, potete aiutarmi

    saluti Roberto


    codice:
     /**
        * Costruzione metodo cerca, per aprire una finestra
        * e selezoinare i file da aprire
        */
        public void cerca(ActionEvent e){
    
            TextArea area = new TextArea();
            String filename = new String();
            JFileChooser chooser = new JFileChooser();
            
             chooser.setCurrentDirectory(new File("."));
             int r = chooser.showOpenDialog(Index.this);
             if (r == JFileChooser.APPROVE_OPTION)
              filename = chooser.getSelectedFile().getPath();
                File f = new File(filename);
    		try{
    			FileReader fr = new FileReader(f);
    			BufferedReader in = new BufferedReader(fr);
    			String line;
    			while((line = in.readLine()) != null)
       			area.append("\n" + line);
       			}catch(Exception ex){	}
    
    
        }// fine metodo cerca

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Perché non gestisci l'eccezione? Prova quanto meno a fare un

    codice:
    ex.printStackTrace();
    dentro al catch!!

    Poi ad occhio direi che stai mescolando Swing con AWT ed è male.

    Un esempio un po' più funzionante potrebbe essere:

    codice:
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.io.*;
    
    
    /**
     *
     * @author Andrea
     */
    public class JFileChooserTest extends JFrame {
    
        JTextArea ta;
    
        private class MyActionListener implements ActionListener {
    
            JFileChooserTest fct;
    
            public MyActionListener (JFileChooserTest fct) {
                this.fct = fct;
            }
    
            public void actionPerformed (ActionEvent ae) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setCurrentDirectory(new File("."));
                    chooser.showOpenDialog(fct);                                
                    try {
                        File f = new File(chooser.getSelectedFile().getPath());
                        BufferedReader in = new BufferedReader(new FileReader(f));
                        String line;
                        while((line = in.readLine()) != null) {
                            ta.append("\n" + line);
                        }
                    }
                    catch(Exception ex) {
                        ex.printStackTrace();
                    }
                }
        }
    
    
    
    
        public JFileChooserTest() {
            super("Another test");
            this.setSize(600,600);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JButton open = new JButton("Apri...");
            this.getContentPane().add(open, BorderLayout.SOUTH);
            ta = new JTextArea();
            this.getContentPane().add(new JScrollPane(ta), BorderLayout.CENTER);
    
            open.addActionListener(new MyActionListener(this));
            this.setVisible(true);
    
        }
    
        public static void main (String[] args) {
            new JFileChooserTest();
        }
    
    }
    Per brevità ho eliminato la gestione delle azioni del JFileChooser, cosa che invece andrebbe fatta.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3

    finestra apri

    ciao, ho sostituito il mio script col tuo, ma il problema rimane, la finestra di dialogo si apre, ma se tente di aprire un documento, un .pdf oppure un .doc non si aprono, secondo te manca cosa puo mancare.

    saluti Roberto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: finestra apri

    Originariamente inviato da RobertoBel
    se tente di aprire un documento, un .pdf oppure un .doc non si aprono
    Innanzitutto con il codice che hai scritto leggi "a righe" ... quindi puoi leggere correttamente solo file di testo "puro" (e tra l'altro, se il charset di default usato dal FileReader è appropriato per il charset usato dal file). Di certo non file binari come .pdf, .doc, .xls o altro ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Forse non ti è chiaro che JFileChooser è una classe che permette all'utente di "selezionare" un file da far aprire alla tua applicazione... non c'entra assolutamente nulla con l'apertura di programmi esterni.

    Se da Word selezioni il menu "File -> Apri" si apre una finestra di dialogo che serve ad aprire un file all'interno di Word, non certo un PDF, che va aperto con Acrobat. JFileChooser serve proprio a questo: far apparire la finestra di apertura, per ottenere un riferimento ad un file, ma non a lanciare una applicazione esterna (come Acrobat Reader).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.