История Java ActionListener - PullRequest
       6

История Java ActionListener

1 голос
/ 04 ноября 2010

Я сделал Java-программу с графическим интерфейсом пользователя, которая просто читает текстовые файлы.У меня есть некоторые функции, такие как показ оглавления, переход на определенную страницу в текстовом файле или поиск слова в этом текстовом файле.Также у меня есть несколько кнопок для выполнения этих функций.Одна из моих кнопок просто стремится вернуться назад, как кнопка «назад».

Я попытался сохранить содержимое JTextArea в объект String и добавить его в стек.Каждый раз, когда я нажимаю кнопку возврата, я получаю последний строковый объект, который я положил в свой стек, и устанавливаю JTextArea для этого строкового объекта.

К сожалению, это не выглядит эффективным для меня.Я сталкиваюсь с множеством ошибок.Есть ли другие способы для этого: сохранение действий?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

Лучше всего хранить ссылки индекса (например, количество символов в файле), а не строки.Затем создайте метод, который показывает страницу из текстового файла, начиная с заданного символа индекса.

Когда пользователь нажимает на страницу в оглавлении или ищет слово и т. Д., Добавьте индекспервый символ отображаемой страницы в стек.Когда нажата кнопка «Назад», вытолкните индекс из стека и отобразите соответствующую страницу.

Было бы полезно хранить строки, только если вы используете текстовый редактор (с функцией отмены), а не текстзритель.

0 голосов
/ 04 ноября 2010

Если вы обновляете текст в JTextArea (через метод setText ()), должно работать что-то вроде этого:

class TextAreaHistory {

HashMap<Integer, String> textAreaHistory = new HashMap<Integer, String>();

int counter = 0;

public void addToHistory(String s) {
   textAreaHistory.put(counter, s);
   counter++;
}

public String getHistory() {
   return textAreaHistory.get(this.counter-1);
   counter--;
}
}
...