Forum » Programiranje » [Java]Listanje slikovnih datotek v izbranem direktoriju
[Java]Listanje slikovnih datotek v izbranem direktoriju

KernelPanic ::
Spostovani!
 
Imam sledec code chunck:
 
Lp,
Marko
Imam sledec code chunck:
        JFileChooser dc=new JFileChooser();
        int iIndex=0;
        this.setData(new Vector<CRecordStudent>());
        dc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        if(dc.showDialog(null,
                "Select folder")==JFileChooser.APPROVE_OPTION)
        {
            String path=dc.getCurrentDirectory().getAbsolutePath();
            File directory=new File(path+"\\data"); // HEAVY BUG: Why I do not get selected directory, but its parent?
            File[] fl=directory.listFiles();
            for(File f : fl)
            {
                if(f.getName().toLowerCase().endsWith(".jpg") ||
                   f.getName().toLowerCase().endsWith(".png") ||
                   f.getName().toLowerCase().endsWith(".bmp"))
                {
                    this.data().add(new CRecordStudent(iIndex,
                            String.valueOf(CDefaults.AUTHOR_STUDENT_ID),
                            CDefaults.AUTHOR_SURNAME,
                            CDefaults.AUTHOR_NAME,
                            f.getAbsolutePath()));
                    iIndex++;
                }
            }Torej, ta koda poklice JFileChooser v rezimu za izbiranje direktorijev. Znotrja tega JFileChooserja izberem direktorij, kjer se nahajajo slike in nato preostali del kode prebere imena slik in pac naredi objekte z temi slikami. Do tu je vse ok. Vendar sem naletel na sledec problem: Ko izberem direktorij in pritisnem gumb "Select Folder", mi ne izbere selektiranega direktorija, ampak njegoveva "oceta", t.i. folderja, ki je nad njim. Vrstica, kjer se to zgodi, je tudi komentirana z "HEAVY BUG" in vidite, da hardkodirano dodam podstring "\\data". Zakaj ob potrditvi izbire ne dobim izbranega diretkorija (njegovi poti), ampak pot njegovega "starsa"?Lp,
Marko

Mavrik ::
Ja, na katerem OSu pa si? Pa zakaj ne uporabiš konstruktorja "new File(path, "data")"? 
The truth is rarely pure and never simple.

KernelPanic ::
Sem na gnidovsih 7 Ultimate (prisiljeno, zahteva nadrejenega), ampak stvar mora delati tudi v Ubuntuju! Aja, pa zato, ker tale "data", ki sem ga dodal, mora iti stran v kodi! In ne vem zakaj mi ne vrne izbranega direktorija, ampak enega nad njim! 
Zgodovina sprememb…
- spremenil: KernelPanic ()

KernelPanic ::
Ups, slamparija na delu. Namesto getCurrentDirectory() mora biti uporabljena funkcija getSelectedFile()! ... It's all in the docs ... :D Stvar dela sedaj! Hvala vsem! 

Mavrik ::
No daj uporabi drug konstruktor. Saj to, da imata Ubuntu in Windows druge separatorje za pot in da "\\data" ne bo delalo na obeh veš a ne? 
The truth is rarely pure and never simple.

KernelPanic ::
No daj uporabi drug konstruktor. Saj to, da imata Ubuntu in Windows druge separatorje za pot in da "\\data" ne bo delalo na obeh veš a ne?Ja ja, tisto "\\data" sem itak odstranil, bilo je namenjeno samo testiranju! Sedaj dela lepo. Koda:
        JFileChooser dc=new JFileChooser();
        int iIndex=0;
        this.setData(new Vector<CRecordStudent>());
        dc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        if(dc.showDialog(null,
                "Select folder")==JFileChooser.APPROVE_OPTION)
        {
            File directory=new File(dc.getSelectedFile().getAbsolutePath());
            File[] fl=directory.listFiles();
            for(File f : fl)
            {
                if(f.getName().toLowerCase().endsWith(".jpg") ||
                   f.getName().toLowerCase().endsWith(".png"))
                {
                    this.data().add(new CRecordStudent(iIndex,
                            String.valueOf(CDefaults.AUTHOR_STUDENT_ID),
                            CDefaults.AUTHOR_SURNAME,
                            CDefaults.AUTHOR_NAME,
                            f.getAbsolutePath()));
                    iIndex++;
                }
            }
        } 
KernelPanic ::
Ok, se eno vprasanje: Ima kdo idejo, kako naj se lotim sledecega problema:
V JFileChooserju bi rad onemogocil "Cancel" gumb ter gumbek "X" (ki zapre okno, na vseh windows platformah naprimer). Torej, kako naj skrijem omenjena kontrolnika?
 
Lp,
Marko
V JFileChooserju bi rad onemogocil "Cancel" gumb ter gumbek "X" (ki zapre okno, na vseh windows platformah naprimer). Torej, kako naj skrijem omenjena kontrolnika?
Lp,
Marko

usoban ::
Za cancel gumb mogoce tole: http://docs.oracle.com/javase/7/docs/ap... 
Zgodovina sprememb…
- spremenil: usoban ()

KernelPanic ::
Hvala, vendar tole sem ze probal, problem je, da z tem pristopom onemogocis tudi gumb za potrditev. Sedaj gledam, kako naj se dinamicno (ko je JFileChooser objekt ze kreiran) "sprehodim" po komponentah (member component), in poiscem zeljeni gumb. 

illion ::
v starih časih ko sm delal z javo, sem, če se prav spomnim, moral pri file chooserju narest image preview če si kliknil na sliko. Za ne-default funkcionalnosti je bilo treba extendad class, drugač pa lahko pogledaš tole; najd view z buttnom in ga skrij, če ne gre drugače:
 
http://stackoverflow.com/questions/1406...
http://stackoverflow.com/questions/1406...
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | [JAVA] Izpis imen vseh datotek iz direktorija in poddirektorijevOddelek: Programiranje | 5416 (3445) | Slovenet | 
| » | Kontakt obrazecOddelek: Izdelava spletišč | 2220 (2065) | betmen | 
| » | [android] vstavljanje slikeOddelek: Programiranje | 1380 (1277) | messi | 
| » | [PHP]Zajem slike iz direktorijaOddelek: Programiranje | 1398 (1315) | KernelPanic | 
| » | [Netbeans-Java]Embossing,blurring,sharpeningOddelek: Programiranje | 1277 (1179) | t3hn0 |