Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[98.84.18.52] |
|
Сообщ.
#1
,
|
|
|
В общем, никак не получается развести обработчики событий для Filer, когда пользователь просто меняет директорию и когда он выбирает файл. Итог -- выбранный файл стабильно имеет значение Null. :-(
Кто знает как этого избежать, подскажите, плиз. |
Сообщ.
#2
,
|
|
|
Ладно. посатвим вопрос иначе: как можно вытащить из Felre"а в обработчики только выбранный файл, чтобы он не срабатывал на прочие действия юзера (кроме отмены, конечно )? На этот-то вопрос кто-нибудь ответить может. или ссылоччку порекомендовать...
|
Сообщ.
#3
,
|
|
|
вот тут у меня лежит демка c:\j2sdk1.4.0\demo\jfc\FileChooserDemo\src\ как юзать файл чузер.
вроде работает без проблем... если у тебя этого добра нет то скачай тут http://211.63.97.25/TestJFileChoser.zip я его спец для тебя вырезал хотя может я не понял когда у тебя возвращает нул ... |
Сообщ.
#4
,
|
|
|
Большое спасибо. Скачал. Сейчас буду разбираться. Надеюсь, что проблем не возникнет. Еще раз сенкс.
|
Сообщ.
#5
,
|
|
|
Блин, это же гениально! :
File [] files = chooser.getSelectedFiles();<br> if (files != null && files.length > 0) {<br> String filenames = "";<br> for (int i = 0; i < files.length; i++) {<br> filenames = filenames + "\n" + files[i].getPath();<br> }<br> JOptionPane.showMessageDialog(frame,<br> "You chose these files: \n" + filenames);<br> }<br> } else {<br> File theFile = chooser.getSelectedFile();<br> if (theFile != null) {<br> if (theFile.isDirectory()) {<br> JOptionPane.showMessageDialog(frame,<br> "You chose this directory: " +<br> theFile.getPath());<br> } else {<br> JOptionPane.showMessageDialog(frame,<br> "You chose this file: " +<br> theFile.getPath());<br> }<br> } Я правильно понимаю что вся фишка в различении файла и директории именно в "files.length > 0"? Воистину, все гениальное просто. А я-то голову ломал как это седлать... Уж до того додмуался, что начал искать другие обработчики... Ха-ха-ха... Правда, есть еще одна проблемка -- как мне заставить обработчик вернуть выбранный файл в ту подпрограмму, из которой вызывался класс, реализующий файл-чузер? Единственное, что приходит в голову -- глобальные переменные, адреса которых кочуют из одной подпрограммы в другую... Ладно, прорвемся! :-) Еще раз благодарю. |
Сообщ.
#6
,
|
|
|
Возможно я чего-то не понял. Но разве выражение "files.length > 0" определяет отличие файла от директории? Ведь это определятеся методом "theFile.isDirectory())". А в цикле лишь формируется список, если пользователь выбрал несколько файлов (и директорий).
Я чего-то недогоняю? |
Сообщ.
#7
,
|
|
|
Ну да, все именно так. А то выражение проверяет выбрано ли что-то вообще, или же совершено какое другое действие. К примеру, смена текущей директории -- это ведь тоже действие...
|