Java/Блокнот: различия между версиями
Содержимое удалено Содержимое добавлено
Foo657657 (обсуждение | вклад) Нет описания правки |
Revert to revision 27395 dated 2008-02-03 03:46:24 by Afinogenoff using popups |
||
Строка 1:
{{Java/Chapters}}
== Дизайн программы ==
Напишем простой блокнот, в котором можно редактировать текст и сохранять его в файл.
=== Функциональность ===
* Прочитать текст из файла
:: Текстовые файлы
* Создание нового текста
* Сохранение в файл
* Закрытие программы
* Редактирование текста
* Отображение окна автора
=== Внешний вид ===
Простое окно с меню.
* Меню
** File
*** New
*** Open
*** Save
*** Exit
** Help
*** About
== Отладка ==
Чтобы процесс отладки не был скучен — создадим сразу главный класс: [[Java/Блокнот/Note.java|Note]] с единственной функцией '''main'''.
Теперь пишем класс [[Java/Блокнот/NoteFrame.java 1|NoteFrame]] — который является окном с текстовым полем и меню.
Конструктор:
{{N|1}} '''public''' NoteFrame() {
{{N|2}} '''super'''("Note");
{{N|3}} initMenu();
{{N|4}} initMainPanel();
{{N|5}} initListeners();
{{N|6}} }
Мы не знаем что именно будет в init-функциях, но знаем, что выполнив их мы получим полноценное окно. В строке {{N|2}} — мы осуществляем вызов конструктора '''JFrame''' — опять же не вдаваясь в подробности что он точно делает, просто берем на веру, что '''JFrame''' знает что нужно сделать чтобы получилось окно.
В функции '''initMenu''' — ничего интересного, все просто и интуитивно.
Строим главную панель:
{{N|1}} '''private void''' initMainPanel() {
{{N|2}} JPanel panel = new JPanel(new BorderLayout());
{{N|3}} theText = '''new''' JTextArea();
{{N|4}} panel.add('''new''' JScrollPane(theText), BorderLayout.CENTER);
{{N|5}} getContentPane().add(panel);
{{N|6}} }
На что следует обратить внимание:
* [[Java/Layouts|Что такое Layout и LayoutManager]]
: В строке {{N|2}} панель получает '''BorderLayout''', а в строке {{N|4}} константа '''BorderLayout.CENTER''' указывает на то, каким образом расположить компоненту на панели.
* [[Java/JFrame panes|Строение JFrame]]
: '''JFrame''' не является панелью, поэтому мы создаем '''panel''' — чтобы установить её на '''contentPane''' '''JFrame''' (строка {{N|5}}).
== Классы ==
Финальные версии классов:
* [[Java/Блокнот/Note.java|Note.java]] — главный класс программы
* [[Java/Блокнот/NoteFrame.java 2|NoteFrame.java]] — класс главного окна
* [[Java/Блокнот/NoteAbout.java|NoteAbout.java]] — класс окна подсказки
[[Категория:Java]]
|