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.
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.
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.