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