我做了一个带有图形用户界面的java程序,它可以简单地读取txt文件。我有一些功能,比如显示目录,转到txt文件的特定页面,或者在txt文件中搜索单词。我也有一堆按钮来执行这些功能。我的其中一个按钮只是想要像“后退”按钮那样返回。
我尝试将JTextArea的内容保存到String对象中,并将其添加到堆栈中。每次我按下back按钮,我都会得到我放入堆栈的最后一个string对象,并将JTextArea设置为这个string对象。
不幸的是,在我看来效率并不高。我面临着很多错误。有没有其他方法可以达到这个目的:保存动作?
发布于 2010-11-04 07:44:40
如果您(通过setText()方法)更新JTextArea中的文本,则应该可以执行以下操作:
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--;
}
}发布于 2010-11-04 07:48:49
最好是存储索引引用(例如文件中的字符数),而不是字符串。然后有一个方法,它从给定的索引字符开始显示文本文件中的一个页面。
每当用户单击目录中的页面或搜索单词等时,将所显示页面的第一个字符的索引添加到堆栈中。当按下back按钮时,将索引弹出堆栈并显示相应的页面。
只有在实现文本编辑器(具有撤消功能)而不是文本查看器时,存储字符串才是有用的。
https://stackoverflow.com/questions/4092496
复制相似问题