Problemas com páginas HTML

2 respostas
m4des

Fala galera,

Tenho o seguinte codigo para visualizar páginas HTML através de JEditorPane:

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class HTMLVisualizador extends JFrame implements HyperlinkListener, ActionListener, KeyListener {

	JEditorPane editorPane = new JEditorPane();
	JScrollPane scrollPane = new JScrollPane(editorPane);
	JToolBar toolBar = new JToolBar();
	JLabel jLabel = new JLabel("Endereço:");
	JTextField textField = new JTextField(60);
	JButton jButton = new JButton("Ir");
	
	public HTMLVisualizador(){
		super(":::: HTMLVisualizador ::::");
		setLayout(new BorderLayout());
		//
		editorPane.setContentType("text/html");
		editorPane.setEditable(false);
		editorPane.addHyperlinkListener(this);
		//
		jButton.addActionListener(this);
		//
		textField.addKeyListener(this);
		textField.setText("http://");
		textField.setCaretPosition(textField.getText().length());
		textField.setFont(new Font("Arial", Font.BOLD, 12));
		//
		toolBar.add(jLabel);
		toolBar.add(textField);
		toolBar.add(jButton);
		//
		add(toolBar, BorderLayout.NORTH);
		add(scrollPane, BorderLayout.CENTER);
	}
	
	public void hyperlinkUpdate(HyperlinkEvent e) {
		if(e.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)){
			textField.setText(e.getURL().toExternalForm());
			setPage(e.getURL().toExternalForm());
		}
	}

	public void actionPerformed(ActionEvent e) {
		if(e.getSource().equals(jButton)){
			if(textField.getText().equals("http://") || textField.getText().length() < 1){
				JOptionPane.showMessageDialog(null, "Digite um endereço válido!", "HTMLVisualizador", JOptionPane.ERROR_MESSAGE);
			}
			else if(textField.getText().startsWith("http://")){
				setPage(textField.getText());
			}
			else {
				setPage("http://"+textField.getText());
			}
		}
	}

	public void setPage(String url){
		try {
			editorPane.setPage(url);
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_ENTER){
			if(textField.getText().equals("http://")){
				JOptionPane.showMessageDialog(null, "Digite um endereço válido!", "HTMLVisualizador", JOptionPane.ERROR_MESSAGE);
			}
			else if(textField.getText().startsWith("http://")){
				setPage(textField.getText());
			}
			else {
				setPage("http://"+textField.getText());
			}
		}
	}

	public void keyReleased(KeyEvent e) {}
	public void keyTyped(KeyEvent e) {}
	
	public static void main(String[] args) {
		HTMLVisualizador visualizador = new HTMLVisualizador();
		visualizador.setDefaultCloseOperation(EXIT_ON_CLOSE);
		visualizador.setSize(800, 600);
		visualizador.setVisible(true);
	}

}

Consigo visualizar as paginas, mas ele fica mostrando parte dos codigos CSS da página e alguns formulários não funcionam.

Se alguém puder me ajudar, agradeço.

2 Respostas

T

o suport a html do editor pane (ou de qualquer outro componente basico swing) eh limitado… procure por third parties (eu nao conheco)

m4des

Opa, vou procurar.

Obrigado pela ajuda!

Criado 10 de junho de 2007
Ultima resposta 12 de jun. de 2007
Respostas 2
Participantes 2