gpt4 book ai didi

Java 简单的网络浏览器奇怪的输出

转载 作者:行者123 更新时间:2023-11-30 07:24:11 25 4
gpt4 key购买 nike

为了学习 Java 网络,我按照教程在 NetBeans 中创建了一个新的 Web 浏览器。这是 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);
}
}
}

这是 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 Logo 。

[编辑]我知道setPage方法只能处理HTML、纯文本或RTF,而不能处理js。但它至少应该显示 HTML 部分,而不会出现奇怪的蓝屏呐? PS:蓝屏也出现在 Facebook 等其他网站上。

最佳答案

我已经测试了您的浏览器。我在使用 html5、javascript 和 css 的页面(例如 google.comfacebook.com)上得到了相同的结果。

但是当我使用像 this 这样的裸露网站时显然它有效。因此,我必须假设问题是在这个简单的浏览器中缺乏对这些技术的支持。

至于 video linked 中的那个人他使用了裸露的 html 谷歌网页,我无法从视频中找到或读出该网页(或前段时间制作了视频)。 YouTube 评论部分的人们也正在解决您的问题。他们将其描述为 Swing 中缺乏对 html5 的支持。然而,有些人设法让它在 JavaFX 中正常工作。

关于Java 简单的网络浏览器奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com