Java simple navigateur Web sortie bizarre


Pour apprendre la mise en réseau en Java, j'ai suivi un tutoriel pour créer un nouveau navigateur Web dans NetBeans. Voici le code dans la classe ReadFile:

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);
        }
    }
}

Et voici le code dans la classe 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);
    }
}

J'ai ensuite exécuté la classe Main, au début, car elle n'affiche aucune donnée d'un site Web, elle a l'air bien avec la barre d'adresse en haut. Mais lorsque j'entre une URL, disons http://google.com, elle affiche une sortie étrange comme dans l'image suivante. Afficher la sortie de mon navigateur Pourquoi exactement cela se produit-il? Étrange fond bleu et logo Google mal aligné.

[Edit] J'ai appris que la méthode setPage ne peut gérer que HTML, texte brut ou RTF et non js. Mais il devrait au moins afficher la partie HTML sans l'écran bleu étrange na? PS: L'écran bleu apparaît dans d'autres sites comme facebook aussi.

Author: Siddharth Venu, 2016-05-04

1 answers

J'ai testé votre navigateur. J'obtiens les mêmes résultats sur les pages avec html5, javascript et css comme google.com ou facebook.com.

, Mais lorsque j'utilise nu à l'os site comme ce, il fonctionne évidemment. Je dois donc supposer que le problème était le manque de support de ces technologies dans ce navigateur simple.

Quant au gars dans la video linked , il a utilisé une page Web google html nue que j'ai été incapable de trouver ou de lire à partir de la vidéo (ou a fait la vidéo un certain temps il ya). Les personnes de la section des commentaires Youtube abordaient également votre problème. Ils le décrivaient comme un manque de support pour html5 dans Swing. Cependant, certains ont réussi à le faire fonctionner correctement dans JavaFX.

 1
Author: ZbyszekKr, 2016-05-04 19:16:06