![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 1 Всего: 61 |
Привет всем!
Пишу сейчас текстовый редактор на Java, для начала не сложный, что-то типа Блокнота. Решил добавить немного функциональности, и в меню внёс пункты Undo и Redo. Всё ничего бы, но пока не могу понять принципа их реализации. Если не сложно, подскажите принцип по которому работают эти кнопки. Заранее спасибо. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
shimopus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 25.8.2006 Репутация: 1 Всего: 1 |
Ну принцип примерно следующий: создается объект действие. У каждого действия должно быть антидействие. Затем создаются два стека - один для Undo, другой для Redo. Пользователь совершил какое-нибудь действие - противодействие для этого действия записалось в стек для Undo. Затем он его захотел отменить - действие записалось в стек Redo. Ну это в совсем общих словах. Подробнее можно почитать на RSDN. Вот статья.
|
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 1 Всего: 61 |
Спасибо большое. Сейчас буду изучать.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
hamsterKSU |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 1 Всего: 11 |
а еще есть готовые примере в поставке с jdk посмотри там много чего есть с сырцами. конкретно по редактору там есть demo\jfc\Notepad\
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В Java есть специальный пакет для этого: javax.swing.undo. Вот пример его использования.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 1 Всего: 61 |
Да, этот пакет здорово облегчил мне жизнь. Уже готовы Undo и Redo. Спасибо. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |