|
|
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
golovonometr, да забыл что приведение к Стрингу работает через valueOf - company.appendChild(getCompanyElements(doc, company, "Size", String.valueOf(length))) - так работает. (и поле не size, а length) - вообще чтобы разрешить простую проблему кастинга к строке было достаточно в гугле ввести три слова: cast long string А в цыкле for-each первій аргумент очевидно не должен был быть вектор а клас, потому там было достаточно убрать vector: написать for ( Filewalker fp : Filewalker.listed ) вместо for (vector <Filewalker> fp : Filewalker.listed ). Теперь осталось поместить это в графическое окно: Потому и остается главный вопрос - можно ли все этo xml вывсети в Label, или обязательно использовать Tree? Если первый вариант - то интересует возможно ли эту часть кода StreamResult console = new StreamResult(System.out); transformer.transform(source, console);} заменить что-бы она выводила результат в Jlabel (Label) конечно чтобы он был scrollable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 15:14 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtПотому и остается главный вопрос - можно ли все этo xml вывсети в Label, или обязательно использовать Tree? круто). Это тебе надо решать. Или преподу. Как дерево уму нужно смотреть, или как текстовую простынку с путями к файлам. ... Что тебе проще, то и пиши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 16:48 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtgolovonometr, да забыл что приведение к Стрингу работает через valueOf - company.appendChild(getCompanyElements(doc, company, "Size", String.valueOf(length))) - так работает. (и поле не size, а length) - вообще чтобы разрешить простую проблему кастинга к строке было достаточно в гугле ввести три слова: cast long string А в цыкле for-each первій аргумент очевидно не должен был быть вектор а клас, потому там было достаточно убрать vector: написать for ( Filewalker fp : Filewalker.listed ) вместо for (vector <Filewalker> fp : Filewalker.listed ). Теперь осталось поместить это в графическое окно: Потому и остается главный вопрос - можно ли все этo xml вывсети в Label, или обязательно использовать Tree? Если первый вариант - то интересует возможно ли эту часть кода StreamResult console = new StreamResult(System.out); transformer.transform(source, console);} заменить что-бы она выводила результат в Jlabel (Label) конечно чтобы он был scrollable. как и куда выводить - нет разницы! Компоненты свинга, не будут за тебя форматировать данные. Форматировать и отображать в том виде котором тебе нужно, придется тебе. Если xml то наверно будет удобно отображать в виде дерева, с возможностью сворачивать и разворачивать ноды. Если нужно отобразить только текст, да хоть JLable, хоть скроллируемое текстовое поле - выбирать и пробовать вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 17:03 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
golovonometr, вот этого куска текста с trasnformerom не очень понимаю: Код: java 1. 2. - где в коде приведено выход System.out? В любом случае мне надо передать в Jlabel (однако там только текст передается, хотя System.out тоже текст) или в JTextarea (где возможно и текст и Stream) именно StreamResult console = new StreamResult(System.out) - но StreamResult наследует Result но не Stream. Еще проблема в общей идее этого GUI что надо отобразить несколько окон в фрейме (с очевидныим применением threads), и кроме того этот интерфейс должен быть non-lockable (неблокирующий), то есть после формирование вектора индексации, его данные должны паралельно записыватся и в файл и отображатся в виде XML в окне интерфейса. А касательно деревьев то на примере http://www.java2s.com/Code/Java/Swing-JFC/DefaultMutableTreeNodeNodeTreeSample.htm я сформировал очень простой скроллабл список в виде дерева свойств файловой системы Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Но в этом варианте все узлы дерева с однаковимы названиями, потому очевидно ХML предпочительней, кроме того желательно чтобы узлы были раскрытыми, а не кликать мышкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 02:58 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, StreamResult console = new StreamResult(System.out) - эту консоль надо передать на вход (Inputstream) JTextArea или JLabel - вот это наверное главная задача сейчас (и наверное единственній способ разместить XML в Swing/AWT), перед окончательной композицией GUI, где главным делом есть сформовать структуру интерфейса и подключить листенеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 04:14 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, Ну, если потоки в ТЗ, то ты у нас надолго. Аппетит приходит во время еды). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 07:54 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, давайте вы не будете делать поспешных выводов? Просто вы не изучив инструмент, делаете вывод, а под зачастую неправильный вывод - пытаетесь написать реализацию. Свинг - однопоточен, вам его (1) потока будет достаточно, чтобы отображать все ваши данные, даже на этапе получения их. Я не вижу здесь необходимости нескольких потоков. Я так понимаю у вас будут модели, в которые вы будете добавлять данные, а компоненты будут их честно отображать. Не вижу необходимости с консоли брать стрим, почему бы сразу в модель не добавлять? Объясните свое приложение что оно должно делать? Отобразить файлы и папки в JTree? Зачем такой непонятный класс как Filewalker? Зачем у него статик поле с вектором из Filewalker? Зачем параллельная запись в файл и отображение на экране? - я не говорю что это сложно, я спрашиваю зачем? Пробежаться по файлам, сформировать список в виде дерева на swing - легко. Записать результат в ввиде xml легко. Отобразить всю информацию в нескольких окнах - легко. Развернуть узлы деревьев - легко. Все ваши вопросы легко решаемы, их можно даже не задавать на форуме, достаточно вбить в гугле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 08:59 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
golovonometrя не говорю что это сложно, я спрашиваю зачем? +1 слово "неблокирующий интерфыйс" просто убивает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 09:37 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Petro123golovonometrя не говорю что это сложно, я спрашиваю зачем? +1 слово "неблокирующий интерфыйс" просто убивает) ??? Чтение файлов занимает время. Сканирование директории может затянуться в несколько секунд. К тому же автор всё своё гуано хочет ещё и в XML запхать. Не понятно, правда, зачем. Чтобы потом его заново парсить? В любом случае, как XML, так и файловое IO занимает как минимум заметные доли секунд. А как максимум и минуты. Поэтому желание запускать эти задачи вне EDT вполне понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 09:42 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, я согласен, что крутая прога должна быть отзывчива. Но тут вообще стратап. Или демо-версия. Не озвучено что нужно делать при фоновом скане директорий? Чел вообще собирался вывести в текст дерево. Все нестыковки и удивляют. Он ни разу ГУИ не видел, поэтому моё IMHO - потоки во второй версии и теме топика)))) LOL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 10:23 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
пусть скан папок для ключевого файла сделает отдельным сервисом-демоном. Он заменит стартовый XML файл, а ГУИ и так будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 10:30 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Petro123я согласен, что крутая прога должна быть отзывчива. Не верно. Даже нормальная прога должна быть отзывчива, иначе для юзера она автоматически - УГ. Petro123Но тут вообще стратап. Или демо-версия. Это, да. Petro123Не озвучено что нужно делать при фоновом скане директорий? Ничего не нужно делать. Нужно дать EDT обслуживать UI. Поскролить там, кнопочки понажимать и т.п. Petro123Чел вообще собирался вывести в текст дерево. Все нестыковки и удивляют. Он ни разу ГУИ не видел, поэтому моё IMHO - потоки во второй версии и теме топика)))) LOL ОК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 10:48 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
1. На даный момент моя основная задача как вывести этот сформировавшийся XML -- StreamResult console = new StreamResult(System.out); transformer.transform(source, console); -- в SWING (AWT). Я вижу наверное один вариант - через (scrollable) Jtextarea, ибо этот клас принимает как аргумент входной поток (я так понимаю transformer.transform(source, console)). 2. Если мне сказано вывести XML, то деревья наверное не подойдут. 3. Если мне надо сперва провести индексацию файлов (как отдельное задание), то я должен в каком то контейнере сберечь все эти свойства. А потом записать их в файл на диске (3-ье задание). Второе задание -- это вывести эти три свойства в виде XML в GUI -- что наверное самая непростая задача в целом задание. Ведь для первого надо кнопку, для третьего кнопку и лейбл. Потому напрямую считывать свойства в XML -- противоречит первому заданию индексации. Как и не окончив индексации - выводить в XML или записывать в файл - потому надо очевидно поставить какой то предупреждение что индексация еще не окончена. 4. Потоки очевидно если можно применять то по отношению к выполнению второго и третьего задание (здесь и заключается идея non-lockable интерфейс, переведите его лутче). 5. Думаю возможности джавы с помощью листенеров позволяют сперва сформировать вектор (если можно то и другой "масив" индексации), а потом поочеродно с этого вектора считывать информацию в GUI XML и записывать в файл. ...Blazkowicz, не надо называть вещи плохими именами, вообще не понимаю вашей критики. Уже неоднократно написал, что, и в каком порядке должно делать приложение - у вас наверное нет идеи как сделать проще и лутче (ну разве на С++ или С#), хотя эти три фактически готовые части работают при минимуме кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 15:33 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
И никакой это ни стартап, это свого рода практическое задание (но не преподавателю), хотя может уже неактуальное, но которое надо сделать, как раз после того как я уже сделал один графический интерфейс, не менее сложный. То есть сейчас уже все-таки иной уровень понимае джавы, да и проблем с недостатком памяти нету (хотя здесь я сканировал диск который в 4 разы меньше обьема двух других дисков). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 15:39 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt1. На даный момент моя основная задача как вывести этот сформировавшийся XML -- StreamResult console = new StreamResult(System.out); transformer.transform(source, console); -- в SWING (AWT). Я вижу наверное один вариант - через (scrollable) Jtextarea, ибо этот клас принимает как аргумент входной поток (я так понимаю transformer.transform(source, console)). 2. Если мне сказано вывести XML, то деревья наверное не подойдут. 3. Если мне надо сперва провести индексацию файлов (как отдельное задание), то я должен в каком то контейнере сберечь все эти свойства. А потом записать их в файл на диске (3-ье задание). Второе задание -- это вывести эти три свойства в виде XML в GUI -- что наверное самая непростая задача в целом задание. Ведь для первого надо кнопку, для третьего кнопку и лейбл. Потому напрямую считывать свойства в XML -- противоречит первому заданию индексации. Как и не окончив индексации - выводить в XML или записывать в файл - потому надо очевидно поставить какой то предупреждение что индексация еще не окончена. 4. Потоки очевидно если можно применять то по отношению к выполнению второго и третьего задание (здесь и заключается идея non-lockable интерфейс, переведите его лутче). 5. Думаю возможности джавы с помощью листенеров позволяют сперва сформировать вектор (если можно то и другой "масив" индексации), а потом поочеродно с этого вектора считывать информацию в GUI XML и записывать в файл. ...Blazkowicz, не надо называть вещи плохими именами, вообще не понимаю вашей критики. Уже неоднократно написал, что, и в каком порядке должно делать приложение - у вас наверное нет идеи как сделать проще и лутче (ну разве на С++ или С#), хотя эти три фактически готовые части работают при минимуме кода. я извиняюсь, но с трудом вникаю в это задание. Если вы сформированный xml хотите отобразить текстом в JTextArea, ну и вы водите его текстом. Почему для xml деревья не подойдут? Сохраняйте на диск, не обязательно кидать Thread. На листенеры добавите события, которые будете слушать и производить действия. Расскажите подробней про индексацию, зачем она? В чем суть этого практического задания? Потоки это отдельная тема в java, взять потоки нахрапом и в GUI будет не просто. Почему бы не своять сначала логику работы консольного приложения, научится работать с xml, с методами сохранения на диск, а потом уже начать писать GUI. В GUI тоже миллион камней. Работа с потоками в swing особена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 16:49 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123пропущено... +1 слово "неблокирующий интерфыйс" просто убивает) ??? Чтение файлов занимает время. Сканирование директории может затянуться в несколько секунд. К тому же автор всё своё гуано хочет ещё и в XML запхать. Не понятно, правда, зачем. Чтобы потом его заново парсить? В любом случае, как XML, так и файловое IO занимает как минимум заметные доли секунд. А как максимум и минуты. Поэтому желание запускать эти задачи вне EDT вполне понятно. пусть занимает, для его задачи 1 потока хватит, он нажмет на своем интерфейсе кнопку, запусится процесс, который начнет писать в модель того же JTree данные. Просто в такой каше, советовать ТС начать работать с потоками в GUI, я думаю появится еще тонна вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 16:54 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtпотому надо очевидно поставить какой то предупреждение что индексация еще не окончена ещё один совет, а вы уж решайте. - фраза выше говорит, что потоки будут после пилотного проекта без потоков. ТЗ -- - файл скана папок лежит рядом с программой - программа без всяких потоков, т.е. основной поток (ГУИ). - при старте программа загружает файл и показывает его - если захотелось пересканировать, есть кнопка "Скан медиа-файлов" - при скане файл очищается и ничего сделать нельзя, кроме свернуть или закрыть программу - при даблклике на строке списка он запускается проигрывателем в ОСи - хэшмап\индексы исп-тся чтобы сразу найти файл на диске по пути файла (см.формат выше) Удачи! на третью страницу скоро пойдём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 17:44 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Через console.toString() в методе создание xml превратил его в метод с возвратом String, но код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. TextArea возвращает javax.xml.transform.stream.StreamResult@d8326d -- но не список XML или StreamResult не превращаются в String, или надо очевидно применять InvokeLater() ибо очевидно при сотни тысяч тегов <файл> (для практических целей я их ограничил к 10 начальных) надо сперва сформировать целый список тегов а потом их присваивать полю класа и выводить его в TextArea. Или как? Возможно ли это? Да и пример кода для скроллабл текстовой области, но при запуске кода она почему то скролится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 02:23 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, xmlmain() - вот этот метод смотреть надо, обратить внимание на то, когда вы из Stream'a строку получаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 15:34 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
1. У меня есть две идеи еще как можно было бы реализовать это задание. Первая использование все таки двох потоков -- первый исполняется пока не сформируется целый список xml (так наверное до десятка минут), и использование метода join свидетельствует об окончание процесинга xml в этом потоке - потом готовый стринг передается в textarea --хотя наверное наивно думать, что это можно реализовать. Может ли быть String в десятки, даже сотни тысяч линеек, еще с правильными переходами со строки на строку?... 2. Второй вариант - это использование метода read() от textarea для перебрасывание потока System.out (но последний должен быть типа Reader), да и неизвестно можно ли вообще правильно конвертировать єти типы, при сохраниение форматирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 16:52 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
golovonometr, да там до сотни тысяч строк должно быть, если не милионы(85*5 тыс.)--количество файлов и еще умножыть на 5 строк xml тегов для каждого файла. В том то и заключается вопрос как передать правильно и полностью выход xmlmain() в текстовое поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 16:56 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtВ том то и заключается вопрос как передать правильно и полностью выход xmlmain() в текстовое поле. Я вроде написал, что задача показать в текстовом поле файл на диске рядом с программой. Java вроде это умеет. Это первый класс вторая четверть. ... arrt1. У меня есть две идеи еще как можно было бы реализовать это задание. ну, если не читать идей что тебе предлагают, то выдвигай ещё кучу, пока к топику не потеряют интерес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 17:19 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Petro123, "Я вроде написал, что задача показать в текстовом поле файл на диске рядом с программой." - мне надо в текстовом поле показать: ... </File> <File> <Name>SMARTDRV.EXE</Name> <Size>45379</Size> <Path>c:\DOS\SMARTDRV.EXE</Path> </File> </FileSystem> --Файл на диске, для чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 17:34 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtмне надо в текстовом поле показать: если для тебя сложно распарсить XML зачем он тебе? Ты же выбрал? В проводнике или винде ты какой формат видишь? Может тот чтоя выше привёл? Или cvs на крайний. arrt--Файл на диске, для чего? прочитай выше ТЗ и задай вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2015, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39090821&tid=2124705]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
219ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 595ms |

| 0 / 0 |
