【发布时间】:2013-04-02 13:12:26
【问题描述】:
我已经阅读了 JEditorPane 文档,据我所知,您只需要 editorpane.setText(String value);但是我对java很陌生,这个解决方案不适用于我的代码。我想我遗漏了一些明显但完全没有想法的东西。
我用这个扩展了 JEditorPane 的类创建了一个新选项卡,这个类旨在打开文件的内容,将它们放在一个数组上,反转数组(所以最新条目在顶部)然后显示这个列表在 JEditorPane 中(使用 JeditorPane,因为我需要将保存 url 变成超链接),
public class HistoryPane extends JEditorPane{
ArrayList<String> historyToSort = new ArrayList<String>();
public HistoryPane(){
setEditable(false);
historySort();
}
public void historySort() {
try (BufferedReader reader = new BufferedReader(new FileReader("BrowserHistory.txt")))
{
String currentLine;
String newLine = new String("\n");
while ((currentLine = reader.readLine()) != null) {
historyToSort.add(currentLine + newLine);
}
} catch (IOException e) {
e.printStackTrace();
}
Collections.reverse(historyToSort);
System.out.println(historyToSort);
}
{
}
private void displayHistory(){
String sorted = historyToSort.toString();
***** HistoryPane.setText(String sorted); <<<------ PROBLEM SYNTAX.*****
}
}
我在 setText() 括号中尝试了多个不同的条目,但没有成功。我错过了什么?谢谢。
注意:
这个类不会编译,因为它依赖于另一个类(我不能全部粘贴),但是这段代码位于我的主类创建的选项卡式窗格中:
错误信息:
线程“AWT-EventQueue-0”java.lang.Error 中的异常:未解决的编译问题: 令牌“setText”上的语法错误,此令牌后应有标识符 缺少该方法的返回类型 此方法需要正文而不是分号
【问题讨论】:
-
什么不起作用?您希望这段代码做什么,而它又做了什么?
-
你在哪里打电话给
setText()? -
抱歉,我希望代码能够在编辑器窗格的屏幕上显示我的数组(文件中的历史行)。我在最底部调用它“HistoryPane.setText(String sorted);”或者我认为....我认为这会设置在 JEditorPane 上显示的文本。问题是我从 IDE 收到错误,它不接受 STRING 和 Value 到 setText() ...它只是提供了没有一个有效的建议。
-
代码甚至无法编译。那是问题吗?如果是这样,您是否尝试过阅读和理解来自编译器的错误消息?他们说什么?
-
我已经用创建这个类的主类部分更新了问题(因此为什么它不会编译)问题是我无法在“HistoryPane.setText(字符串排序) ;" ...我认为这会在编辑器窗格中显示我的数组中的文本....但它不会接受我的措辞。
标签: java swing arraylist jeditorpane