gpt4 book ai didi

java - 如何在没有 JEditor 的情况下制作 Java Web 浏览器?

转载 作者:太空宇宙 更新时间:2023-11-04 13:18:54 26 4
gpt4 key购买 nike

我对 Java 还很陌生,对于我的类(class),我们必须制作一个没有 JEditor 的 Web 浏览器。我只需要弄清楚当用户在 JTextField 中键入内容时如何使用套接字,然后使其访问该网站。另外,如果有影响的话,我只能使用 http://而不是 https://。任何事情都有帮助!谢谢!

    import javax.swing.*;
import java.awt.*;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.event.*;
import java.net.InetAddress;
import java.net.Socket;
import java.io.*;
public class WebPanel extends JPanel{
PrintWriter pw;
JTextField text = new JTextField("http://www.");

public WebPanel(){

//trying to connect to the website
try {
Socket s = new Socket(text, 80); //<<<---where the error is thrown
OutputStream os = s.getOutputStream();
pw = new PrintWriter(os, true);
pw.flush();
} catch (Exception e) {
e.printStackTrace();
}
//set layout
setLayout(null);

ButtonHandler bh = new ButtonHandler();

text.addActionListener(bh);
text.setBounds(185, 10, 315, 25);
add(text);

//buttons
JButton goButton = new JButton("GO");
goButton.addActionListener(bh);
add(goButton);
goButton.setBounds(500, 10, 75, 25);

JButton backButton = new JButton("BACK");
backButton.addActionListener(bh);
add(backButton);
backButton.setBounds(2, 10, 75, 25);
JButton forwardButton = new JButton("FORWARD");
forwardButton.addActionListener(bh);
add(forwardButton);
forwardButton.setBounds(80, 10, 100, 25);
}
public class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
//buttons for later
if(e.getActionCommand().equals("GO")){
String input = text.getText();
System.out.println("You searched for: " + input);
pw.flush();
}else if(e.getActionCommand().equals("BACK")){
System.out.println("you pressed the back button");
pw.flush();
} else if(e.getActionCommand().equals("FORWARD")){
System.out.println("You pressed the forward button");
pw.flush();
}
}

}
}
}

最佳答案

对于简单的情况,您不需要使用套接字。您可以像这样使用 URL 类:

import java.io.InputStream;
import java.net.URL;
import org.apache.commons.io.IOUtils;

public class URLReadTest {
public static void main(String[] args) throws Exception {
InputStream is = new URL("http://stackoverflow.com/").openStream();
String html = IOUtils.toString(is);
is.close();
System.out.println(html); // Parse HTML here
}
}

然后您必须自己解析返回的 HTML,然后才能将其可视化。

关于java - 如何在没有 JEditor 的情况下制作 Java Web 浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33291970/

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