Java/Блокнот: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Revert to revision 27395 dated 2008-02-03 03:46:24 by Afinogenoff using popups
Строка 1:
{{Java/Chapters}}
Я считаю что [[Участник:Самохвалов|Cа
 
мохвалов]] тупой [[гомосексуал]]ист-педераст что [[Участник:Lvova|Анастасия Львова]] идиотка и она трахалась со [[Сталин]]ым и за это её ебали нацистские генералы [[Гитлер]]а ещё Самохвалова отъебли немцы-[[фашисты]] в немецком концлагере а потом отправили его в [[газенваген]]!
== Дизайн программы ==
Напишем простой блокнот, в котором можно редактировать текст и сохранять его в файл.
 
=== Функциональность ===
* Прочитать текст из файла
:: Текстовые файлы
* Создание нового текста
* Сохранение в файл
* Закрытие программы
* Редактирование текста
* Отображение окна автора
 
=== Внешний вид ===
Простое окно с меню.
 
* Меню
** 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]]