Reenderizar página apartir de codigo HTML em java

0 respostas
G

Boa tarde galera, estou com dificuldades em reenderizar uma pagina em html. Preciso criar um navegador bem simples, onde eu informo uma URL e ele mostra a página, não precisa fazer mais nada, só mostrar a pagina mesmo. A primeira parte do trabalho eu consegui fazer, que era mostrar o código HTML da pagina, na segunda parte, eu preciso pegar esse códido e reenderizar a página web, e é nessa parte que to com dificuldade. Meu professor disse que existe uma biblioteca em java que faz isso, mas nem eu e nem meus colegas conseguimos encontrar nada sobre essa tal biblioteca. Se alguem puder me ajudar, ficarei muito grato!

A primeira parte do trabalho é essa:

package iftm;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;
import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JLabel;

import javax.swing.JTextField;

import javax.swing.JButton;

import javax.swing.JTextPane;

import javax.swing.JScrollPane;

@SuppressWarnings({ “unused”, “serial” })
public class Janela extends JFrame {

private JPanel contentPane;
private JTextField txtLink;
private JLabel lblUrl;	
private	JButton btnBuscar;
private JTextPane textPane;
private static String hostname;
private String sentence;
private String retorno, resto = "";
private JScrollPane scrollPane;

public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				Janela frame = new Janela();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

public Janela() {
	setResizable(false);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 900, 600);
	setTitle("Cristovão Colombo");
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(null);
	
	criaComponentes();
	criaAcoes();
	
}

private void criaComponentes() { 
	lblUrl = new JLabel("URL:");
	lblUrl.setBounds(12, 12, 43, 15);
	contentPane.add(lblUrl);
	
	txtLink = new JTextField();
	txtLink.setBounds(51, 10, 704, 19);
	contentPane.add(txtLink);
	txtLink.setColumns(10);
	
	btnBuscar = new JButton("Buscar");
	btnBuscar.setBounds(771, 7, 117, 25);
	contentPane.add(btnBuscar);
	
	scrollPane = new JScrollPane();
	scrollPane.setBounds(12, 39, 876, 522);
	contentPane.add(scrollPane);
	
	textPane = new JTextPane();
	scrollPane.setViewportView(textPane);
}

private void criaAcoes() {
	btnBuscar.addActionListener(new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent e) {
			textPane.setText(null);
			String url = txtLink.getText();
			String separarlink[] = url.split("/");
			hostname = (separarlink[0]);
			for (int i = 1; i < separarlink.length; i++) {
				resto += "/" + separarlink[i];
			}
			sentence = "GET /" + resto + " HTTP/1.1";
			Cliente();
		}
	});
}

public void Cliente() {

	try {
		Socket clientSocket = new Socket(hostname, 80);

		DataOutputStream outToSever = new DataOutputStream(clientSocket.getOutputStream());

		BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

		PrintWriter mostrar = new PrintWriter(clientSocket.getOutputStream());

		mostrar.println();
		mostrar.println("HOST:" + hostname);
		mostrar.println("");
		mostrar.flush();

		BufferedReader ler = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

		while ((retorno = ler.readLine()) != null) {
			textPane.setText(textPane.getText() + "" + retorno + "\n");
			textPane.repaint();
		}

		// Fecha a conexão
		clientSocket.close();
	} catch (IOException e) {
		System.out.println("Erro " + e);
	}

}

}

Criado 10 de setembro de 2017
Respostas 0
Participantes 1