Java Swing WebBrowser如何注意到URL不存在?

Java Swing WebBrowser如何注意到URL不存在?,java,swing,browser,io,jeditorpane,Java,Swing,Browser,Io,Jeditorpane,我找不到有关stackoverflow的问题的解决方案。可能是因为我不善于观察,如果是的话,我道歉 无论如何,关于问题: 我已经制作了自己的浏览器,如果URL没有激活或没有响应,我希望它给用户一个错误。我使用Java Swing中的以下命令: EditorPane=setPage(url)//其中EditorPane是一个窗格 SetPage(URL)仅在参数中发送的不是URL时才会给我一个错误。那么,如果URL没有响应,我如何获得反馈呢 提前谢谢你-朱利安 附言:这些评论是用瑞典语写的,

我找不到有关stackoverflow的问题的解决方案。可能是因为我不善于观察,如果是的话,我道歉


无论如何,关于问题: 我已经制作了自己的浏览器,如果URL没有激活或没有响应,我希望它给用户一个错误。我使用Java Swing中的以下命令: EditorPane=setPage(url)//其中EditorPane是一个窗格


SetPage(URL)仅在参数中发送的不是URL时才会给我一个错误。那么,如果URL没有响应,我如何获得反馈呢


提前谢谢你-朱利安 附言:这些评论是用瑞典语写的,但不是很有帮助

    private void loadPage(URL url, boolean AddOrNot) {
    try{
        System.out.println("loadPage Try");
        displayEditorPane.setPage(url);           // setter sidan till url

        //URL newUrl = displayEditorPane.getPage(); //ger den nuvarande sidans url funkar ei
        //displayEditorPane.setPage(newUrl); //get error ?!?
        String hist=url.toString();
        textField.setText(hist); // men denna fungerar

        if(AddOrNot){//lägger till url i history-list om du inte använt back / forward knapp
            history.add(hist);
            JMenuItem historyFile = new JMenuItem(hist);
            historyFile.addActionListener(new ActionListener(){
               public void actionPerformed(ActionEvent e){
                   textField.setText(hist);
                   position=0;
                   Launch(true);
               } 
            });
            HistoryMenu.add(historyFile);
        }
        //** kollar om forward och back knapparna ska vara aktiva **//
        if(position!=history.size()-1){
            BackButton.setEnabled(true);
        }else{
            BackButton.setEnabled(false);
        }
        if(position>0){
            ForwardButton.setEnabled(true);
        }else{
            ForwardButton.setEnabled(false);
        }


    }catch(IOException io ){
        System.out.println("loadPage Catch " + io);
        msgError("Unable to open page");
    }
}
如果您需要更高级的加载和成功反馈,则有必要放弃这种简单的方法,转而使用更复杂的方法来加载应用程序。控制阅读内容。为此,请查看
URLConnection
&
HttpURLConnection
。方法特别是:

  • : 返回从该打开连接读取的输入流。如果读取超时在数据可供读取之前过期,则从返回的输入流读取时会引发
    SocketTimeoutException
  • :

    从HTTP响应消息获取状态代码。例如,在以下状态行的情况下:

    它将分别返回
    200
    401
    。如果无法从响应中识别代码(即响应无效),则返回
    -1



有关处理流的信息,请参阅本教程的课程。

我制作了自己的浏览器,…是一个JEditorPane。
JEditorPane
组件从未打算用作web浏览器。它只支持HTML 3.2元素的子集,样式有限,不支持javascript。。如果这是一个严肃的项目,我建议您转到JavaFX并使用该组件。嘿,谢谢您的关注,但这远不是一个严肃的项目。这是一个学校的任务,介绍Java,所以他们想让我们把脚伸进水里,制作一个只支持HTML的浏览器
displayEditorPane.setPage(url);
HTTP/1.0 200 OK
HTTP/1.0 401 Unauthorized