Java - FileBrowser

Programovacie jazyky, rady, poradňa...
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Java - FileBrowser

Príspevok od používateľa SSPPYY »

Potrebujem urobit FileBrowser v jave ale mam mensi problemik.
Obsah prehladavaneho adresara si ukladam do pola File[].

Kód: Vybrať všetko

    //KONSTRUKTOR
    public FileSystem(String path) {
        this.f = new File(path);
        File files1[] = f.listFiles();
        this.countFiles = files1.length;
    }
    
    //VRATI POZADOVANY SUBOR
    public File getOneFile(int id) {
        File files1[] = f.listFiles();
        return files1[id];
    }
Problem je v tom ze pri spusteni vytvorim objekt typu FileSystem a obsah roota sa vypise. Ale ked chcem potom vypisat obsah dajakeho podpriecinka tak zase proste zavolam konstruktor ale uz s inou cestou path, ale vyhodi error java.lang.NullPointerException. Podla mna je to tym ze pole File files1[] mozem vytvorit len pri prvom volani konstruktora. Ale neviem si s tym dat rady :cry:
Vladot
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 35
Registrovaný: 20 dec 2005, 19:18

Príspevok od používateľa Vladot »

Čo znamená, že zase proste zavoláš konštruktor...?
Nepokúšaš sa volať náhodou konštruktor nad vytvoreným objektom?...lebo to sa samozrejme nedá, ak nie tak by bolo dobré, ak by si ukázal ako vyrábaš tie objekty a kde vypisuješ tie súbory.
A označil riadok kde vzniká exception
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Dik uz som to vyriesil. Teraz sa pasujem s GUI aby to zobrazovalo ako chcem.
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Prosim vas nevedel by mi tu niekto okomentovat pripadne aj vysvetlit ako funguje nasledujuci zdrojak? Jedna sa o File Drag&Drop.

Kód: Vybrať všetko

public void drop(DropTargetDropEvent dtde) {
    try {
        Transferable tr = dtde.getTransferable();
        DataFlavor[] flavors = tr.getTransferDataFlavors();
        for (int i = 0; i < flavors.length; i++) {
            if (flavors[i].isFlavorJavaFileListType()) {
                dtde.acceptDrop(DnDConstants.ACTION_COPY);
                java.util.List list = (java.util.List) tr.getTransferData(flavors[i]);
                 for (int j = 0; j < list.size(); j++) {
                    textArea.append(list.get(j) + "\n");
                    repaint();
                }
                dtde.dropComplete(true);
                return;
            }
        }
        System.out.println("Drop failed: " + dtde);
        dtde.rejectDrop();

    } catch (Exception e) {
        dtde.rejectDrop();
    }
}
Napísať odpoveď