JTable ścieżka do pliku

0

Robie prosty menedżer plików, w tabeli jTable chce po zaznaczeniu pliku aby jTextField pokazała się jego ścieżka, jak?

0

Dodaj do tabeli action listenera reagującego na klikanie myszą (http://stackoverflow.com/questions/7350893/click-event-on-jtable-java) i pobieraj informację o ścieżce pliku, <edit> którą następnie wyświetlaj w JTextField.</edit>

0

A jak pobierać informacje o ścieżce pliku

0

nie wiem o co chodzi, chce zeby program podał dokładną ścieżke dowolnego pliku gdziekolwiek on jest, a jak na razie wypisuje sciezke do folderu z projektem plus na koniec dopisuje yourfileName

File file = new File("yourfileName");
String path = file.getAbsolutePath();
0

Eee... ale żeby metoda getAbsolutePath() zwróciła rzeczywistą kompletną ścieżkę do pliku, to musi zostać wywołana dla obiektu File, który jest zainicjalizowany dla istniejącego pliku. W Twoim przypadku nie ma takiego pliku jak yourFileName, więc absolute path jest skierowane na folder projektu. Jeżeli miałbyś w JTable wyświetlone pliki z jakiegoś folderu na dysku, to przy posiadaniu odpowiedniej akcji w listenerze dla kliknięcia na tabelę uzyskasz informację o całkowitej ścieżce wybranego pliku.

0

A skąd bierzesz krótkie nazwy plików wyświetlane w JTable?

0

Dlaczego nie moge zrobić tak ?

int row = FileTable1.getSelectedRow();

Object data = (Object)FileTable1.getValueAt(row, 0);

File file = new File(data);
String path = file.getAbsolutePath();
System.out.println(path);

równiez wyswietla sciezke do folderu projektu

0

Ten kod się kompiluje? Przecież nie ma konstruktora File(Object).

0

Tak skompilował sie

 
        int row = FileTable1.getSelectedRow();

        String data = (String)FileTable1.getValueAt(row, 0);
        
        File file = new File(data);
        String paths = file.getAbsolutePath();
        System.out.println(paths);
1

Jeszcze jeden post z niewłaściwymi znacznikami i wątek wyląduje w koszu.
Zamieściłeś w ostatnich postach dwa różne kody.
Odpowiedź na pytanie z pierwszego postu

Dlaczego nie moge zrobić tak ?
brzmi: bo ten kod jest niepoprawny.
W drugim poście nie ma pytania.
Nie podałeś jaki jest model Twojej tabeli, zatem nikt nie wie co u Ciebie zwraca metoda getValueAt(row, 0). Dopóki tego nie zdradzisz, to z pytaniami udaj się do wróżki.

0
    private void FileTable1MouseClicked(java.awt.event.MouseEvent evt) {                                        
        int row = FileTable1.getSelectedRow();
 
        String data = (String)FileTable1.getValueAt(row, 0);      // getValueAt() zwraca nazwe pliku w podanym wierszu i kolumnie
 
        File file = new File(data);
        String paths = file.getAbsolutePath();
        System.out.println("path: " + paths);
    }   

kod wyżej zwraca tylko siezke do folderu z projektem + nazwa pliku zamaiast pełna poprawna sciezke, DLACZEGO ?

w zmiennej data przechowywana jest nazwa pliku z rozszerzeniem albo nazwa katalogu

0

A czego oczekujesz? Takie zachowanie jest w zasadzie oczywiste. Jeśli masz na dysku (w różnych folderach) 15 plików o nazwie "trololo.txt", to jak na podstawie tekstu "troloo.txt" odtworzyć pełna ścieżkę? Nie można, więc konstruktor

new File("trololo.txt");

zakłada, że plik jest z folderu bieżącego i dopisuje z przodu odpowiedni folder.

0

To jak moge odczytac ta sciezke, jest ona mi nie zbedna do dalszej pracy

0

Już Ci dwa razy pisałem, musisz ją zapamiętać podczas tworzenia modelu dla JTable (obiekt JTable nie musi wyświetlać wszystkiego co jest w modelu).

0

Podczas próby kopiowania plików netbeans wyświetla bład

http://prntscr.com/9y3qu7

ktoś wie czym to może być spowodowane?

1 użytkowników online, w tym zalogowanych: 0, gości: 1