Como mostrar um html dentro Jframe

5 respostas
J

Boa tarde…

Estou tentando colocar um arquivo.html dentro do meu programa, objetivo eh mostrar o material didático de uma materia… como se fosse um help.

Sera que alguém poderia postar algum exemplo ou indicar um caminho.

Desde já agradeço…

5 Respostas

J

Achei este codigo... ele funciona para paginas da WEB, porém para arquivo locais da erro...

package exemplos2;

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

public class DisplayHtml{

  public DisplayHtml(String urlString){
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container con = frame.getContentPane();

    JEditorPane jep = new JEditorPane();
    JScrollPane jsp = new JScrollPane(jep);
    con.add(jsp);

    jep.setContentType("text/html");
    try{
      jep.setPage(urlString);
    }
    catch (Exception e){
      e.printStackTrace();
    }

    frame.setBounds(50, 50, 600, 800);
    frame.setVisible(true);
  }

  public static void main(String[] args){
    String ustr = "file://C:\\mytest.html";

    if (args.length > 0){ // local file URL should begin with file://
      ustr = args[0];     // ex.  file:///root/mytest.html
    }                     // ex.  file://C:\mytest.html
    new DisplayHtml(ustr);
  }
}

Mas quando roda aparece este erro...
O arquivo Html esta salvo em C:\mytest.html

java.net.UnknownHostException: C at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.NetworkClient.openServer(Unknown Source) at sun.net.ftp.FtpClient.openServer(Unknown Source) at sun.net.ftp.FtpClient.openServer(Unknown Source) at sun.net.www.protocol.ftp.FtpURLConnection.connect(Unknown Source) at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(Unknown Source) at javax.swing.JEditorPane.getStream(Unknown Source) at javax.swing.JEditorPane.setPage(Unknown Source) at javax.swing.JEditorPane.setPage(Unknown Source) at exemplos2.DisplayHtml.(DisplayHtml.java:19) at exemplos2.DisplayHtml.main(DisplayHtml.java:35)

testei String ustr = "file://C:\mytest.html"; e deu erro
com String ustr = "file://C:\\mytest.html"; roda porem mostra o erro acima e não visualiza o arquivo...

J

Se caso ajudar alguem, tai o código… Basta passar o caminho da URL local, quando for criar o JEditorPane…

package pasta1;

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

public class DisplayHtml{

	public DisplayHtml() throws IOException{
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container con = frame.getContentPane();

		JEditorPane jep = new JEditorPane("file:/C:/mytest.html");
		JScrollPane jsp = new JScrollPane(jep);
		con.add(jsp);

		frame.setBounds(50, 50, 600, 500);
		frame.setVisible(true);
	}

	public static void main(String[] args) throws IOException{
		DisplayHtml exibeHtml=new DisplayHtml();
	}
}
J

codigo melhorado… Buscando em qualquer diretorio… —> Exemplo do diretorio… “/src/Arv/image/paginaloca.html”

import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;

public class ConceitoHtml{

	public ConceitoHtml() throws IOException{
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container con = frame.getContentPane();

		String URL = ("file:///"+System.getProperty("user.dir") + "/src/Arv/image/paginaloca.html");

		String novo=URLCaracteresInvalidos(URL);

		JEditorPane jep = new JEditorPane(novo);
		JScrollPane jsp = new JScrollPane(jep);
		con.add(jsp);

		frame.setBounds(50, 50, 600, 500);
		frame.setVisible(true);
	}
	public static String URLCaracteresInvalidos(String URL){  

		final StringBuilder resultado = new StringBuilder();  
		final StringCharacterIterator iterator = new StringCharacterIterator(URL);  
		char character =  iterator.current();  
		while (character != CharacterIterator.DONE ) {  
			if (character == '\\') {  
				resultado.append("/");  
			} else if (character == ' ') {  
				resultado.append("%20");  
			} else {   
				resultado.append(character);  
			}  
			character = iterator.next();  
		}  
		return resultado.toString();  
	}  
	public static void main(String[] args) throws IOException{
		ConceitoHtml exibeHtml=new ConceitoHtml();
	}
}
R

O problema é que você está usando método errado. Se você usar o método setPage() o controle vai tentar obter isso de um servidor Web. Se os seus arquivos são locais, você deve fazer o seguinte, ler o arquivo, jogar o conteúdo para uma String e aí você usa setText().

J

Blza… Vlw pela dica… Eu precisa na verdade era mostra um Help q esta em HTML, sendo um arquivo local… Procurei mto ate conseguir fazer desta forma…

Vou estudar o método setPage(), se for possivel, poste um exemplo para arquivo local.

mais uma vez, vlw pela a dica…

Criado 22 de novembro de 2008
Ultima resposta 11 de dez. de 2008
Respostas 5
Participantes 2