IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

lien dans boite de dialogue


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut [Résolu] lien dans boite de dialogue
    bonjour,

    je suis nouveau et debutant en java, je souhaiterais savoir comment creer un lien qui fonctionne dans une boite de dialogue, j ai commencer quelque chose mais le lien ne fonctionne pas, il doit manquer certainement des choses mais je c est pas trop quoi.

    pourvez vous m aider.

    je vous montre le code que j ai fait, enfin a moitier recopier d un livre et modifier:


    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    class FichierAPropos implements ActionListener
    {	
    	public void actionPerformed(ActionEvent e) 
    	{	
    	String titre = "A propos du logiciel";//titre dans la fennetre boite de dialogue		
    	String contenue = "<html><center><h2>Titre logiciel</h2></center>" +
    		"<center>Version Logiciel : 1.0</center>" +	
    		"<center>Version Java : 1.6._03</center>" +			
    		"<br><center>Auteur : dad72 </center>" +			
    		"<center>Rendez vous sur <a href='http://www.google.fr'> cette page </a>pour mettre à jour le logiciel </center>"+
    		"<center> © Copyrights 2008 @ <a href='http://www.google.fr'>google</a></center>" +
    		"</html>";	//contenue de la boite de dialogue	
    	Icon icon = new ImageIcon("data/img/prog/elephant.png");//image dans le contenue		
    		JEditorPane pane = new JEditorPane();	
    		pane.setOpaque(false);
    		pane.setEditable(false);
     
    		pane.addHyperlinkListener(new HyperlinkListener(){
    			public void hyperlinkUpdate(HyperlinkEvent ev){
    				if(ev.getEventType()==HyperlinkEvent.EventType.ACTIVATED){
    					viewURL(ev.getURL());
    				}
    			}			
    		});		
    			JOptionPane.showMessageDialog( pane,contenue, titre, JOptionPane.INFORMATION_MESSAGE, icon);
    	}
     
    	protected void viewURL(URL url) {
     
    	}		
    }

    je vous remerci pour votre aide

  2. #2
    Membre chevronné Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JOptionPane.showMessageDialog( pane,contenue, titre, JOptionPane.INFORMATION_MESSAGE, icon);
    	}
    si par ça tu veux afficher ton pane dans une boite de dialogue tu es tout a fait a cote de la plaque.

    le premier parametre des showMessage est le parent du dialog, donc rien a voir avec l'affichage. pour faire ce que tu veux, je pense que tu dois creer ton propre dialog.

    bon courage.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    les infos s affiche bien dans la boite de dialogue, mais les liens ne fonctionne pas. je veux bien etre a cotee de la plaque, debutant que je suis depuis 3 semaine, mais dans ce cas le livre que je li est lui aussi a cotee de la plaque allor ???

    je suis vraiment l arger avec le java, j essaie d apprendre mais j ai besoin d explemple concrait, car aprendre dans les livres, c est bien, mais les exemples pour faire pousser des tomates (LOL) m aide pas beaucoup a faire un logiciel.

    avez vous un expemple d une boite de dialogue personnaliser, sa m aiderais a comprendre, elle comporterais, un titre de fenetre, le message avec un lien clicable, un bouton ok pour la fermer et une image dans l angle gauche.

    merci pour le bon courage car j en ai plus que besoin.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Déjà tu crée un JEditorPane vide : il faut lui associer le texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JEditorPane pane = new JEditorPane("text/html", contenue);
    Ensuite tu te trompes dans l'utilisation de showMessageDialog() : le premier paramètre doit correspondre au composant qui appelle la boite de dialogue, et non pas au composant qui sera affiché dedans. Ici tu affiches le "contenu" comme String (qui sera donc placé dans un JLabel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	JOptionPane.showMessageDialog(null, pane, titre,
    			JOptionPane.INFORMATION_MESSAGE, icon);
    Enfin il ne reste plus qu'à coder la méthode viewURL() pour afficher le lien, par exemple en utilisant la classe Desktop de Java 6 ou JDIC pour les versions antérieurs...


    En ce qui concerne les cours, tu peux jeter un oeil à ceux disponibles sur la page cours : http://java.developpez.com/cours/

    Mais quoi qu'il en soit cela demande beaucoup de travail : il n'y a pas de méthode magique


    Bon courage...

    a++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    Merci beaucoup pour cette aide qui est tres claire.

    J'ai essayer de coder la méthode viewURL() enfin j'ai trouver sa sur cette page : http://java.developpez.com/faq/gui/?page=VIII

    J'ai aussi chercher sur ce qui conserne Desktop mais j ai du mal a comprendre.
    aussi je ne comprend pas bien comment on utilise la doc de ces pages la :http://java.sun.com/javase/6/docs/ap...t/Desktop.html

    Je vous montre deja ce que j ai mis dans la méthode viewURL() et je vous décrirais les erreurs que Jbuilder me donne souligner en rouge :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    protected void viewURL(URL url) 
    {	
    	if(Desktop.isDesktopSupported())
    	{		if(Desktop.getDesktop().isSupported(java.awt.Desktop.Action.BROWSE))
    		{
    			try
    			{
    				java.awt.Desktop.getDesktop().browse(new URI("http://ww.goole.com"));//lien provisoir pour l essaie
    			}
    			catch (IOException ex)
    			{
    				//Traitement 1 de l'exception  
    			}
    			catch (URISyntaxException uri)
    			{
    				//Traitement 2 de l'exception 
    			}	
    		}	
    		else
    		{
    			System.out.println("La fonction n'est pas suporter par le système d'exploitation");	
    		}
    	}	
    	else
    	{
    	 System.out.println("Desktop n'est pas suporter par le système d'exploitation");
    	}
    }


    Voila les erreurs qui me sont souligner :

    Desktop
    java.awt.Desktop
    ou aussi
    Desktop.Action
    ou meme
    browse

    Je comprend pas bien en faite, il me manque quoi ? la class Desktop ?
    Jbuilder me dit de creer soit la class Desktop ou le champs ou la constantes, je doit faire quoi ? je suis desoler de poser des question qui peuvent etre simple pour certain, mais comme je disait je debute et c est tout recent mais dans mes livre j ai pas grand chose sur le sujet.

    Merci encor pour votre aide.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    Bonjour,

    j ai revue le tout, avec la methode "viewURL(URL url)"

    je me suis donc servi de javax.jnlp au lieux de Desktop

    j ai donc importer ceci de javax.jnlp :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import javax.jnlp.BasicService;
    import javax.jnlp.ServiceManager;
    import javax.jnlp.UnavailableServiceException;


    le problème qui se pose :

    quand je clique sur un lien la souris passe avec la main au passage dessue, mais rien ne se produit.

    pourquoi mes lien ne fonctionne pas, ai je employer la bonne technique dans mon "String contenue" pour les lien. ou me manque t il quelque chose.

    pouvez vous m aider s il vous plais.



    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    class FichierAPropos implements ActionListener{
     
    	public void actionPerformed(ActionEvent e ){
     
    	String titre = "A propos du logiciel";	
    	String contenue = "<html><center><h2>Titre du logiciel</h2></center>" +
    		"<center><b>Version Logiciel :</b> 1.0</center>" +	
    		"<center><b>Version Java :</b> 1.6._03</center>" +			
    		"<br><center><b>Auteur :</b> dad72 </center>" +			
    		"<center>Rendez vous sur <a href='http://www.google.com'>cette page</a> pour mettre à jour le logiciel</center>"+
    		"<center> © Copyright 2008 @ <a href='http://www.gooogle.com'>Google</a></center>" +
    		"</html>";		
    	Icon icon = new ImageIcon("data/img/prog/elephant.png");
    	JEditorPane pane = new JEditorPane("text/html", contenue);			
    		pane.setOpaque(false);
    		pane.setEditable(false);
     
    		pane.addHyperlinkListener(new HyperlinkListener(){
    			public void hyperlinkUpdate(HyperlinkEvent ev){
    				if(ev.getEventType()==HyperlinkEvent.EventType.ACTIVATED){
    					viewURL(ev.getURL());
    				}
    			}			
    		});  
    		JOptionPane.showMessageDialog(null, pane, titre, JOptionPane.INFORMATION_MESSAGE, icon);			
    	}
     
     
     
    	protected void viewURL(URL url){	
    		try	{
    			BasicService  service = (BasicService) ServiceManager.lookup("javax.jnlp.BasicService");
    			service.showDocument(url);
    		}
    		catch (UnavailableServiceException e){		
    		e.printStackTrace();
    		}
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ToolTips dans ToolBar dans Boite de Dialogue
    Par conico dans le forum MFC
    Réponses: 8
    Dernier message: 10/09/2008, 15h17
  2. Transparence controle dans boite de dialogue
    Par coco21 dans le forum MFC
    Réponses: 7
    Dernier message: 22/02/2008, 23h38
  3. CPaintDC dans boite de dialogue
    Par Denn's dans le forum MFC
    Réponses: 4
    Dernier message: 23/10/2007, 16h08
  4. Taille de texte dans boite de dialogue
    Par Mirna dans le forum MFC
    Réponses: 2
    Dernier message: 16/11/2006, 14h40
  5. Icone dans boite de dialogue
    Par remixes dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/09/2006, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo