Java Swing WebBrowser如何注意到URL不存在?
我找不到有关stackoverflow的问题的解决方案。可能是因为我不善于观察,如果是的话,我道歉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没有响应,我如何获得反馈呢 提前谢谢你-朱利安 附言:这些评论是用瑞典语写的,
无论如何,关于问题: 我已经制作了自己的浏览器,如果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