Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Discussione: Classe File e path

  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio
    E non è quello che ho detto? Hai premuto il pulsante Africa? Bene tieni da qualche parte (non solo come variabile locale) l'oggetto File che rappresenta il path "dirIniziale\\Africa". E lo potrai usare più avanti.
    Quale è il dubbio su quanto ho detto?
    Praticamente, dovrei fare come ho fatto per la città
    codice:
    elemento.setCitta(String.valueOf(Menu_Tendina.getSelectedItem()));
    solo che in questo caso devo considerare il jButton selezionato, giusto?

  2. #12
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    solo che in questo caso devo considerare il jButton selezionato, giusto?
    Visto che in Menu_Tendina hai dei file, che hanno il path che ti interessa, puoi anche prendere la directory dall'elemento selezionato. Ed è anzi meglio rispetto a tenersi il path della directory da qualche parte.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #13
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Infatti, ma come faccio a prendere direttamente la directory dell'elemento selezionato ?
    Cioè, è possibile che ci sia un metodo di File che mi costruisca il path considerandomi solo l'ultima directory ?

  4. #14
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Cioè, è possibile che ci sia un metodo di File che mi costruisca il path considerandomi solo l'ultima directory ?
    Certo ... basta leggere bene il javadoc.

    getParent() o getParentFile()
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    per evitare equivoci

    http://docs.oracle.com/javase/7/docs...a/io/File.html

    ti consiglio di fare amicizia con la javadoc
    RTFM Read That F*** Manual!!!

  6. #16
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Allora, ho fatto così:
    ho definito una nuova classe
    codice:
    public class Continente {
        private String continente;
    
        
    
        public String getContinente() {
            return continente;
        }
    
        public void setContinente(String continente) {
            this.continente = continente;
        }
    
        @Override
        public String toString() {
            return "Continente{" + "continente=" + continente + '}';
        }
        
        
    }
    poi nei due jButton (Africa e Europa), ho fatto così:
    codice:
    private void AfricaActionPerformed(java.awt.event.ActionEvent evt) {                                       
            File dir = new File("dirIniziale\\Africa");
            String[] files = dir.list();
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            for (String file : files) {
                modello.addElement(file);
    
            }
            Menu_Tendina.setModel(modello);
            contin.setContinente("Africa");
        }
    e

    codice:
    private void EuropaActionPerformed(java.awt.event.ActionEvent evt) {                                       
            
            File dir = new File("dirIniziale\\Europa");
            String[] files = dir.list();
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            for (String file : files) {
                modello.addElement(file);
    
            }
            Menu_Tendina.setModel(modello);
            contin.setContinente("Europa");
        }
    poi nel jButton "Cerca", così
    codice:
    private void CercaActionPerformed(java.awt.event.ActionEvent evt) {                                      
    
            elemento.setCitta(String.valueOf(Menu_Tendina.getSelectedItem()));
    
            File dir = new File("dirIniziale\\" + contin.getContinente() + "\\" + elemento.getCitta());
            String[] files = dir.list();
            DefaultComboBoxModel modello = new DefaultComboBoxModel();
            for (String file : files) {
                modello.addElement(file);
    
            }
            Database_Radiazione.setModel(modello);
            datab.setData(String.valueOf(Database_Radiazione.getSelectedItem()));
    
            jTextArea1.setText(elemento.getCitta());
            jTextArea2.setText(String.valueOf(Menu_Tendina.getSelectedItem()));
        }
    e funziona..ma cosa ne pensate??

  7. #17
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se funziona bon, personalmente ti dico

    1. non hai letto bene il link su File della javadoc, né quello che ti ho scritto io
    2. non ha senso usare il combo model come fai tu, un po' di tempo fa ti avevo anche indicato come usarlo proficuamente senza passare per il valueOf di un oggetto (che altri non è che il toString)
    3. dovresti imparare ad usare le convenzioni java per la nomenclatura
    RTFM Read That F*** Manual!!!

  8. #18
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    e funziona..ma cosa ne pensate??
    Che funzioni ... ok. Io prima ti dicevo di prendere il path dall'elemento selezionato .... ma mi stavo dimenticando (non ero attento ) che stai usando list() ed esso ti fornisce dei String con solo il nome del file ... senza path!

    Potresti fare in modo da inserire nel model dei tuoi oggetti es. FileItem che incapsulano il java.io.File e in cui il toString() fornisce il solo nome del file per visualizzarlo. Avresti il (grande) vantaggio di poter ottenere sempre un java.io.File per ciascun elemento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #19
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da valia Visualizza il messaggio
    se funziona bon, personalmente ti dico

    1. non hai letto bene il link su File della javadoc, né quello che ti ho scritto io
    2. non ha senso usare il combo model come fai tu, un po' di tempo fa ti avevo anche indicato come usarlo proficuamente senza passare per il valueOf di un oggetto (che altri non è che il toString)
    3. dovresti imparare ad usare le convenzioni java per la nomenclatura

    1. Guarda ho letto la documentazione su File relativamente a quello che poteva servirmi (getParent() , getParentFile() , getPath(), getAbsolutePath() e getAbsoluteFile() ), li ho anche provati ma non sono riuscito ad ottenere quello che volevo.

    2. Potresti ridirmi l'utilizzo del combo model , dove sbaglio ?

    3. Per nomenclatura, ti riferisci alle classi che iniziano con lettera maiuscola e varibaili con lettere minuscola ecc.. ?

  10. #20
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    1. Guarda ho letto la documentazione su File relativamente a quello che poteva servirmi (getParent() , getParentFile() , getPath(), getAbsolutePath() e getAbsoluteFile() ), li ho anche provati ma non sono riuscito ad ottenere quello che volevo.
    Perché dal list() hai solo il nome, senza path.

    Quote Originariamente inviata da roquentin Visualizza il messaggio
    2. Potresti ridirmi l'utilizzo del combo model , dove sbaglio ?
    Io lo farei così:

    Banale classe che fa da "wrapper" per java.io.File:

    codice:
    public class FileItem {
        private final File file;
    
        public FileItem(File file) {
            this.file = file;
        }
    
        public File getFile() {
            return file;
        }
    
        public String toString() {
            return file.getName();
        }
    }

    L'ho fatta "immutabile" (anche per abbreviare) ma puoi renderla "mutabile" se vuoi (non è quello il punto comunque ...).

    Poi:

    codice:
    File dir = .........
    
    for (File f : dir.listFiles()) {
        tuoModello.addElement(new FileItem(f));
    }

    Tutto qui.
    Poi dove prendi l'elemento selezionato, se non è null, allora hai un FileItem e da questo prendi il File (che ha il path).

    Quote Originariamente inviata da roquentin Visualizza il messaggio
    3. Per nomenclatura, ti riferisci alle classi che iniziano con lettera maiuscola e varibaili con lettere minuscola ecc.. ?
    Sì, dovresti apprendere quali sono le convenzioni standard riconosciute nella comunità degli sviluppatori Java.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.