Robie prosty menedżer plików, w tabeli jTable chce po zaznaczeniu pliku aby jTextField pokazała się jego ścieżka, jak?
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>
A jak pobierać informacje o ścieżce pliku
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();
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.
A skąd bierzesz krótkie nazwy plików wyświetlane w JTable?
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
Ten kod się kompiluje? Przecież nie ma konstruktora File(Object)
.
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);
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 metodagetValueAt(row, 0)
. Dopóki tego nie zdradzisz, to z pytaniami udaj się do wróżki.
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
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.
To jak moge odczytac ta sciezke, jest ona mi nie zbedna do dalszej pracy
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).
Podczas próby kopiowania plików netbeans wyświetla bład
ktoś wie czym to może być spowodowane?