2016-05-04 8 views
1

Javaのネットワークを学ぶために、チュートリアルに従ってNetBeansで新しいWebブラウザを作成しました。ここでは、コードReadFileクラスである:JavaのシンプルなWebブラウザの奇妙な出力

package WebBrowser; 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 

/** 
* 
* @author Siddharth Venu 
* 
*/ 
public class ReadFile extends JFrame{ 
    private JTextField addressBar; 
    private JEditorPane display; 

    //constructor 
    public ReadFile(){ 
     super("Sid Browser"); 

     addressBar=new JTextField("Enter address"); 
     //lambda expression instead of anonymous class 
     addressBar.addActionListener((ActionEvent event) -> { 
      loadData(event.getActionCommand()); 
     }); 
     add(addressBar,BorderLayout.NORTH); 

     display = new JEditorPane(); 
     display.setEditable(false); 
     display.addHyperlinkListener((HyperlinkEvent event) -> { 
      if(event.getEventType()==HyperlinkEvent.EventType.ACTIVATED) 
       loadData(event.getURL().toString()); 
     }); 
     add(new JScrollPane(display), BorderLayout.CENTER); 
     setSize(500,300); 
     setVisible(true); 
    } 

    //load the data to display on the screen 
    private void loadData(String address){ 
     try{ 
      display.setPage(address); 
      addressBar.setText(address); 
     }catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
} 

そしてここでは、コードがMainクラスである:

package WebBrowser; 
import javax.swing.JFrame; 
/** 
* 
* @author Siddharth Venu 
* 
*/ 
public class Main { 
    public static void main(String[] args){ 
     ReadFile browser=new ReadFile(); 
     browser.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 

それはから任意のデータが表示されていないとして、私は、その後、最初に、Mainクラスを走りましたウェブサイト、それは上のアドレスバーとよく見ています。しかし、URLを入力すると、http://google.comと言うと、次のような奇妙な出力が表示されます。 Display output of my browser なぜこれが起こっているのですか?奇妙な青い背景と不揃いのGoogleロゴ。

[編集] setPageメソッドは、HTML、プレーンテキスト、またはRTFのみを処理でき、jsは処理できないことを知りました。しかし、それは少なくとも奇妙な青い画面のNAなしでHTMLの部分を表示する必要がありますか? PS:ブルースクリーンは、Facebookのような他のサイトにも登場しています。

+0

私はエキスパートではありませんが、GoogleがトップページにJavascriptを使用していることは間違いありませんか? – ZbyszekKr

+0

わかりませんが、Googleのフロントページを作成するのではなく、ブラウザを作っています。 'display.setPage'はそれを表示するためにhtml、js、およびcssを解析します(私が間違っていると私はそれを修正してください)。 –

+0

ああ、申し訳ありません、jsとCSSは 'setPage'メソッドでサポートされていないようです。少なくともhtmlは正しく表示される必要がありますか?奇妙なブルースクリーンなしで。こちらをご覧ください(https://thenewboston.com/videos.php?cat=25&video=17766)。この男は問題なしでそれを実行します。 –

答えて

1

私はあなたのブラウザをテストしました。私はgoogle.comまたはfacebook.comのようなhtml5、javascriptおよびcssのページで同じ結果を得ています。

しかし、私はthisのような骨のウェブサイトに裸を使用すると、明らかに機能します。ですから、この単純なブラウザでは、これらのテクノロジのサポートが不足していたとします。

の男として、私はビデオから見つけたり読んだりできなかった裸のhtml googleウェブページを使用していました。 YouTubeのコメントセクションのユーザーもあなたの問題に対処していました。彼らはそれをSwingのhtml5のサポートの欠如として記述していました。しかし、JavaFXで正しく動作するように管理しているものもありました。