Гость
|
Добавлено: Чт Апр 22 2004 12:04 Заголовок сообщения: содержимое текстового файла в окне произвольного размера |
|
|
Здравствуйте!
Есть следующая задача - построить GUI приложение с сабжом. Описание задачи
смотрите ниже.
У меня нет опыта разработки GUI приложений - есть большой опыт разработки
web приложений. Но в книжках главы, касающиеся разработки GUI приложений, я
прочитывал, т.е. имею некоторое представление, в частности знаком с
"Философией Java" Брюса Эккеля. Буду признателен за любые мысли, советы,
идеи... Насколько я понимаю, для первой версии можно построить самое простое
приложение с минимум наворотов. Не подскажете ли вы полезные ссылки, где
можно ознакомиться с материалом, позволяющим справиться с сабжом? Где можно
нарыть примеры в сети, касательно сабжа? Какие ключевые слова можно набрать
в гугле для поиска хелпа?
*** начало ***
ТЗ
Программа должна показывать содержимое текстового файла в окне произвольного
размера. Показываемый текст должен быть отформатирован по левому краю окна.
Слова, не помещающиеся на одной строке, следует целиком переносить на
следующую строку; слова, не помещающиеся на строку вообще, следует разделять
так, чтобы на исходной строке осталось максимальное количество символов.
Программа должна обрабатывать переводы строк.
Текст должен показываться любым пропорциональным фонтом, например, Arial,
(имя может быть зафиксировано в программе). Каждая пара слов текста должна
показываться фонтом, размер которого будет больше или меньше, чем размер
фонта для предыдущей пары. При этом изменение размера должно чередоваться,
например: 9-12-9-12.
Программа должна быть устроена так, чтобы при простой перерисовке окна текст
не переформатировался. Под переформатированием понимается процесс разбиения
текста на части, которым приписываются определённые визуальные
характеристики.
По нажатию клавиш Up и Down программа должна осуществлять построчный scroll.
Имя входного файла следует получать из командной строки. Словами в исходном
тексте считаются символы, ограниченные пробелами и переводами строк.
Программу следует реализовать на языке Java без использования компоненты
JTextPane, а также других компонент библиотек Swing и AWT, выполняющих
форматирование. Программа должна быть структурирована в соответствии с
принципами Model-View-Controller (Doc/View).
ОЦЕНКИ
Программа должна работать стабильно, не содержать ошибок, соответствовать
спецификации и разумно занимать вычислительные ресурсы.
Программа должна быть хорошо структурирована - так, чтобы её не пришлось
существенно переписывать для добавления новой функциональности. Должны быть
выделены структуры данных, соответствующие понятиям предметной области.
Исходный код должен быть лёгок для чтения, понимания и модифицирования.
*** конец ***
Конкретные вопросы.
1) Как собственно сделать показ отформатированного содержимого текстового
файла в окне? Какие есть алгоритмы? Можно ли, допустим для первой версии,
ограничить размер файла и загрузить этот файл в память, а потом из памяти
брать данные? Можно ли для этого воспользоваться NIO? А для следующей
версии - как быть с файлами, произвольного размера? Можно ли как-то
организовать подгрузку части файла в окно?
2) Какие есть алгоритмы и паттерны для реализации "чередования размера -
9-12-9-12..."?
3) Кто и как делает scroll?
4) Паттерн Model-View-Controller для web приложений я знаю и применял - а
как его применить для GUI приложения? Что такое (Doc/View)?
Опять же буду признателен за любые наброски, примеры кода, комментарии...
Заранее благодарен за ответы.
До свидания.
С уважением,
Михаил. |
|