我正在用4个browser,一个JButtonsJTextfield创建一个简单的Web JEditorPane。我想将访问过的每个URL保存在称为ArrayListlist中。我的4个JButtons之一被称为History,如果用户按下此按钮,则我希望打印list

每次用户在Web浏览器中的JTextfield中编写内容,写下URL并按Enter时,都会调用此方法:

private void loadURL(String URL) {
    try {
        display.setPage(URL);
        addressBar.setText(URL);
    }catch(Exception e) {
        System.out.println("Fel URL!");
    }
    //list.add(URL);
}


请注意,我已注释掉//list.add(URL);。如果我从此行中删除//,则我的代码每次都会给出一条错误消息,内容为:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

我不明白问题出在什么地方,我只是想记下我访问过的每个URL,我不明白为什么这一行会给我一条错误消息。

最佳答案

您必须在代码中的某个位置启动列表。喜欢:

private List<String> list = new ArrayList<>();


如果您忘记了它,则在尝试访问列表的方法时会得到一个NPE。

检查您的代码,看看是否正在执行。

10-07 19:22
查看更多