Afficher une page html dans une application java [Résolu]

cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 29 oct. 2004 à 18:04 - Dernière réponse :  regis
- 24 févr. 2016 à 14:11
je me souviens pus du composant exact, mais si ma mémoire est bonne, il me semble dans un composant, genre jTextField on pouvait afficher le contenu d'une page html (pas le code, mais la page)

me souviens pus comment non plus, quelqu'un peu me rafraichir la mémoire ???
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscription 3 octobre 2018 Dernière intervention - 29 oct. 2004 à 18:53
3
Merci
hello,

le composant tu peux prendre JTextPane en utilisant un HTMLEditorKit du package javax.swing.text.html.*

pour l'utilisation c un truc du gout

HTMLEditorKit htmlEK = new HTMLEditorKit();
DefaultStyledDocument doc = new DefaultStyledDocument();
public JTextPane textpane;

....
textpane.setContentType("text/html");
textpane.setEditorKit(htmlEK);
....

mais ICI tu auras bien plus d'info

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Twinuts
Meilleure réponse
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 30 oct. 2004 à 21:10
3
Merci
je vien de vérifier, ca marche aussi avec les JEditorPane (c'est peut etre moins 'propre' je sais pas...)

si ca peux aider...:

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

public class TestUrl 
{
private static JEditorPane JTest = new JEditorPane();

public static void main(String[] args) 
{
try
{
JFrame Browser = new JFrame("Test");
BorderLayout Bl = new BorderLayout();
JScrollPane ScrollMe;
HyperlinkListener HlListener;
Browser.getContentPane().setLayout(Bl);
URL UrlTest = new URL("http://www.yahoo.com");
JTest.setPage(UrlTest);
JTest.setEditable(false);
JTest.addHyperlinkListener(HlListener = new HLList());
Browser.getContentPane().add(ScrollMe = new JScrollPane(JTest), BorderLayout.CENTER);
Browser.pack();
Browser.setVisible(true);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public static void Browse(URL Destination)
{
try
{
JTest.setPage(Destination);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println(Destination);
}
}
}
class HLList implements HyperlinkListener
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
TestUrl.Browse(e.getURL());
}
}
}

Merci cs_AbriBus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_AbriBus
Meilleure réponse
cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 2 nov. 2004 à 22:15
3
Merci
c est beau, j,ai trouver

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

/**
 * Title: 

 *
 * Description: 

 *
 * Copyright: Copyright (c) 2004

 *
 * Company: 

 *
 * @author not attributable
 * @version 1.0
 */
public class ecran extends JFrame {
    BorderLayout borderLayout1 = new BorderLayout();
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu jMenu1 = new JMenu();
    JMenuItem jMenuItem1 = new JMenuItem();
    JMenuItem jMenuItem2 = new JMenuItem();
    JMenu jMenu2 = new JMenu();
    JMenuItem jMenuItem3 = new JMenuItem();
    JMenuItem jMenuItem4 = new JMenuItem();
    JLabel jLabel1 = new JLabel();
    JPanel jPanelImage = new JPanel();
    JPanel jPanelHTML = new JPanel();
    private static JEditorPane matiereHTML = new JEditorPane();
    private static JEditorPane fichierHTML = new JEditorPane();

    ImageIcon fond;
    
    public ecran() {
    	this.setSize(1100,800);
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        this.show();
    }

    private void jbInit() throws Exception {
    	jPanelHTML.setLayout(borderLayout1);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setJMenuBar(jMenuBar1);
        this.setResizable(false);
        jMenu1.setText("Fichier");
        jMenuItem1.setText("Ouvrir");
        jMenuItem1.addActionListener(new ecran_jMenuItem1_actionAdapter(this));
        jMenuItem2.setText("Quitter");
        jMenuItem2.addActionListener(new ecran_jMenuItem2_actionAdapter(this));
        jMenu2.setText("Visualiser");
        jMenuItem3.setText("table des matières");
        jMenuItem4.setText("Fichier");
        jMenuBar1.add(jMenu1);
        jMenuBar1.add(jMenu2);
        jMenu1.add(jMenuItem1);
        jMenu1.add(jMenuItem2);
        jMenu2.add(jMenuItem3);
        jMenu2.add(jMenuItem4);
        
        fond = new ImageIcon("XmlXls.gif");
        
        jPanelImage.setSize(fond.getIconWidth(),fond.getIconHeight());
        jPanelImage.setLocation(this.getWidth() / 2 - jPanelImage.getWidth() / 2, this.getHeight() / 2 - jPanelImage.getHeight() / 2);
        
        jPanelHTML.setSize(this.getSize());
        
        this.jLabel1.setIcon(fond);
        jPanelImage.add(jLabel1);
        
        this.getContentPane().add(jPanelImage);
        
        matiereHTML.setPage("http://www.etsmtl.ca/");
        matiereHTML.setEditable(false);
        matiereHTML.addHyperlinkListener(new HLList());
        
        fichierHTML.setPage("http://www.etsmtl.ca/zone2/departements/logti/index.html");
        fichierHTML.setEditable(false);
        fichierHTML.addHyperlinkListener(new HLList());
         
        matiereHTML.setPreferredSize(new Dimension((int)(jPanelHTML.getWidth() * 0.25),jPanelHTML.getHeight()));
        fichierHTML.setPreferredSize(new Dimension(jPanelHTML.getWidth() - (int)(jPanelHTML.getWidth() * 0.25),jPanelHTML.getHeight()));
        
        jPanelHTML.add(new JScrollPane(fichierHTML) ,BorderLayout.CENTER);
        jPanelHTML.add(new JScrollPane(matiereHTML) , BorderLayout.EAST);
        
        HTMLVisible(false);
        
        this.setIconImage(fond.getImage());
        this.getContentPane().add(jPanelHTML);
    }

    public void jMenuItem2_actionPerformed(ActionEvent e) {
        System.exit(0);
    }

    public void jMenuItem1_actionPerformed(ActionEvent e) {
         JFileChooser fichier = new JFileChooser();
         fichier.setMultiSelectionEnabled(false);
         fichier.showOpenDialog(this);
         if (fichier.getSelectedFile() == null){
         	HTMLVisible(false);
         }else{
         	HTMLVisible(true);
         }
    }
    
    public void HTMLVisible(boolean visible){
    	if (visible){
         	jPanelImage.setVisible(false);
         	jPanelHTML.setVisible(true);
         }else{
         	jPanelImage.setVisible(true);
         	jPanelHTML.setVisible(false);
         }
    }
    
    public static void Browse(URL Destination)
    {
    try
    {
    	matiereHTML.setPage(Destination);
    }
    	catch(Exception e)
    {
    System.out.println(e.getMessage());
    System.out.println(Destination);
    }
    }
}

class ecran_jMenuItem1_actionAdapter implements ActionListener {
    private ecran adaptee;
    ecran_jMenuItem1_actionAdapter(ecran adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuItem1_actionPerformed(e);
    }
}

class ecran_jMenuItem2_actionAdapter implements ActionListener {
    private ecran adaptee;
    ecran_jMenuItem2_actionAdapter(ecran adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jMenuItem2_actionPerformed(e);
    }
}

class HLList implements HyperlinkListener
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
ecran.Browse(e.getURL());
}
}
}

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

Merci cs_dragon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_dragon
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 2 nov. 2004 à 19:39
1
Merci
Tient voila je t'ai refait le code avec un JScrollPane, c'etait pas bien compliqué... :)
import javax.swing.*;
import java.net.*;
import java.awt.*;
import javax.swing.event.*;

public class LitleBrow extends JFrame
{
private static JEditorPane JTest = new JEditorPane();

public void main(String[] args) 
{
try
{
BorderLayout Bl = new BorderLayout();
JScrollPane ScrollMe;
HyperlinkListener HlListener;
this.getContentPane().setLayout(Bl);
URL UrlTest = new URL("http://tcaminade.servehttp.com/tsturl/page1.htm");
JTest.setPage(UrlTest);
JTest.setEditable(false);
JTest.addHyperlinkListener(HlListener = new HLList());
this.getContentPane().add(ScrollMe = new JScrollPane(JTest), BorderLayout.CENTER);
this.pack();
this.setVisible(true);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public void Browse(URL Destination)
{
try
{
JTest.setPage(Destination);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println(Destination);
}
}
}
class HLList implements HyperlinkListener
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
XMachine.BrowMe(e.getURL());
}
}
}
Commenter la réponse de cs_AbriBus
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 30 oct. 2004 à 21:11
0
Merci
je vien de vérifier, ca marche aussi avec les JEditorPane (c'est peut etre moins 'propre' je sais pas...)

si ca peux aider...:

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

public class TestUrl 
{
private static JEditorPane JTest = new JEditorPane();

public static void main(String[] args) 
{
try
{
JFrame Browser = new JFrame("Test");
BorderLayout Bl = new BorderLayout();
JScrollPane ScrollMe;
HyperlinkListener HlListener;
Browser.getContentPane().setLayout(Bl);
URL UrlTest = new URL("http://www.yahoo.com");
JTest.setPage(UrlTest);
JTest.setEditable(false);
JTest.addHyperlinkListener(HlListener = new HLList());
Browser.getContentPane().add(ScrollMe = new JScrollPane(JTest), BorderLayout.CENTER);
Browser.pack();
Browser.setVisible(true);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public static void Browse(URL Destination)
{
try
{
JTest.setPage(Destination);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println(Destination);
}
}
}
class HLList implements HyperlinkListener
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
TestUrl.Browse(e.getURL());
}
}
}

Commenter la réponse de cs_AbriBus
cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 31 oct. 2004 à 01:33
0
Merci
oki, merci vous 2

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Commenter la réponse de cs_dragon
cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 2 nov. 2004 à 19:30
0
Merci
bon là ma page s,affiche, mais comment intégré une scroll bar ???

il y aurait une façon sans utiliser l'API, masi j,ai lu sur scrollToReference permettait de le faire, masi j,arrive pas a l'utilisé
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Commenter la réponse de cs_dragon
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 2 nov. 2004 à 19:39
0
Merci
Tient voila je t'ai refait le code avec un JScrollPane, c'etait pas bien compliqué... :)
import javax.swing.*;
import java.net.*;
import java.awt.*;
import javax.swing.event.*;

public class LitleBrow extends JFrame
{
private static JEditorPane JTest = new JEditorPane();

public void main(String[] args) 
{
try
{
BorderLayout Bl = new BorderLayout();
JScrollPane ScrollMe;
HyperlinkListener HlListener;
this.getContentPane().setLayout(Bl);
URL UrlTest = new URL("http://tcaminade.servehttp.com/tsturl/page1.htm");
JTest.setPage(UrlTest);
JTest.setEditable(false);
JTest.addHyperlinkListener(HlListener = new HLList());
this.getContentPane().add(ScrollMe = new JScrollPane(JTest), BorderLayout.CENTER);
this.pack();
this.setVisible(true);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public void Browse(URL Destination)
{
try
{
JTest.setPage(Destination);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println(Destination);
}
}
}
class HLList implements HyperlinkListener
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
XMachine.BrowMe(e.getURL());
}
}
}
Commenter la réponse de cs_AbriBus
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 2 nov. 2004 à 19:44
0
Merci
(je suis desolé pour les doublons... pourtant j'ai appuyé qu'une seule fois sur "Ajouter")...

Sinceres excuses.

Bubus
Commenter la réponse de cs_AbriBus
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 2 nov. 2004 à 19:46
0
Merci
...heu... PS2: je vien de m'appercevoir que mon code est le meme que plus haut... ce qui me vient a me demander... n'as tu pas deja des scroll bar avec la source que j'ai postée ?

(encore navré pour la pollution...)

Bubus
Commenter la réponse de cs_AbriBus
cs_dragon 2336 Messages postés samedi 14 juillet 2001Date d'inscription 5 mai 2009 Dernière intervention - 2 nov. 2004 à 21:43
0
Merci
merci, ça fonctionne bien maintenant

dernière petite question, comment on peut fixer la grandeur de la page ??? puisque là j'en affiche 2 sur le même jpanel et les 2 se chevauche, malgré que un est WEST et l'autre est EAST
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Commenter la réponse de cs_dragon
cs_AbriBus 492 Messages postés jeudi 28 août 2003Date d'inscription 25 avril 2007 Dernière intervention - 2 nov. 2004 à 22:01
0
Merci
si tu as deja fait un Frame.pack(), tu peux toujours essayé un Frame.setSize(x, y) si tu travailles en awt ou un Frame.setDimention(dimention d) ou un Frame.setBounds(x, y, h, l) avec x et y les coordonnées du coin superieur gauche de la fenetre et h et l la hauteur et la largeur de la feuille (tous entier) si tu travailles en swing (JComposant, et comme JEditorPane est un swing, je penses que tu travailles en swing sinon ca fait des erreurs un peu mysterieuses mais vite corrigées).

Si tu veux utiliser le setSize, il faut définir un nouvel objet dimention avec une ligne du genre:

java.awt.Dimension MaDim = new Dimention(int x, int y) avec x et y la largueur et y la hauteur de ta Frame (ou n'importe quoi d'autre).

ensuite, il reste plus qu'a l'appliquer a ta Frame avec la commende setDimention() comme suit:

Frame.setDimention(MaDimention)

A priori, si tu connais la position de depart de ta fenetre, (ex: 0, 0 par defaut pour java) il vaut peut etre mieux utiliser setBounds car ca t'évites de déclarer un objet supplementaire mais bon ca c'est du gout de chacun... la dimention te permet surtout de pouvoir appliquer la meme a toutes les feuilles dans le cadre d'une appli de plusieurs Frames différentes de meme taille.

Wala...

Bubus...
Commenter la réponse de cs_AbriBus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.