2014-12-13 3 views
1

stackoverflow 내 질문에 대한 솔루션을 찾을 수 없습니다. 내가보기에 나쁘다는 것일 수 있습니다, 그렇다면 사과드립니다. 질문에에 어쨌든Java Swing WebBrowser URL이 손상되지 않는다는 것을 알아 채는 방법?


: 나는 내 자신의 브라우저를 만들었습니다, 그리고 나는 URL이 excist하지 않거나 응답하지 않는 경우 사용자에게 오류를주고 싶다. 이 매개 변수에 전송 된 URL이 아니라면 만 나에게 오류를 제공 EditorPane = setPage (URL) // EditorPane이 JEditorPane로


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"); 
    } 
} 
+0

* "내 브라우저를 만들었습니다. .. JEditorPane입니다."* JEditorPane 구성 요소는 웹 브라우저로 사용되지 않았습니다. HTML 3.2 요소, 제한된 스타일, 자바 스크립트 지원의 하위 집합 만 지원합니다. 심각한 프로젝트 인 경우 Java-FX로 이동하고 ['WebView'] (https : // docs .oracle.com/javafx/2/api/javafx/scene/web/WebView.html) 구성 요소에 있습니다. –

+0

안녕하세요, 고맙습니다.하지만 심각한 프로젝트와는 거리가 멀습니다.Java 도입을위한 학교 과제이기 때문에 우리는 발가락을 물에 담그고 HTML만을 지원하는 브라우저를 만들고 싶습니다. –

답변

1
displayEditorPane.setPage(url); 

, 더 복잡 한 응용 프로그램이 간단한 방법을 포기해야 할 것입니다. 내용을 읽는 것을 제어합니다. 이를 위해 URLConnection & HttpURLConnection을 찾으십시오. 특히 방법 :

  • URLConnection.getInputStream() :

    이 접속으로부터의 입력을받는 입력 스트림을 돌려줍니다. SocketTimeoutException은 데이터를 읽을 수 있기 전에 읽기 시간 초과가 만료되면 반환 된 입력 스트림에서 읽을 때 throw 될 수 있습니다.

  • HttpURLConnection.getResponseCode()

  • :

    는 HTTP 응답 메시지로부터 상태 코드를 가져옵니다. 예를 들어, 다음과 같은 상태 라인의 경우 :

    HTTP/1.0 200 OK 
    HTTP/1.0 401 Unauthorized 
    

    200401 각각 반환합니다. 응답에서 코드를 식별 할 수없는 경우 (즉, 응답이 유효한 HTTP가 아닌 경우) -1을 반환합니다.


는 스트림 처리에 대한 자세한 내용은 튜토리얼의 Basic I/O 교훈을 참조하십시오.