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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    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 averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    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 régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    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 sénior
    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
    Points : 23 190
    Points
    23 190
    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 régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    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 régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    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();
    		}
    	}
    }

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

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Bon je cherche encore et encore... En voyant mon livre il on fait sa :

    methode 1
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    JEditorPane pane = new JEditorPane("text/html", this.resource.getString(about.message));

    Moi je voulais (ou penser pouvoir) faire autrement en mettant une variable String contenue = "" a la place de :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    this.resource.getString(about.message)

    Je voulais donc mettre tout le texte dans la variable contenue(voir le code plus haut):

    methode 2
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    JEditorPane pane = new JEditorPane("text/html", contenue);

    Mais je me rend compte que la méthode 1 doit être celle qui faut avoir pour que les lien fonctionne, enfin je le suppose.

    Maintenant je ne c'est pas comment faire pour faire un fichier texte au format html en utilisant cette propriété about.message.
    A vrais dire je ne comprend pas la ligne tout court :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    this.resource.getString(about.message)
    pouvez vous me l expliquer.

    Le mot resource et about sont souligner en rouge avec JBuilder, je doit faire quoi exactement, arff, les livres explique pas tout, ou c'est moi qui a du mal a tout retenir.

    Oui je c'est, je suis un gros débutant.
    Je vous remercie pour vos éclairage, comme vous pouvez le voir je cherche, je n'attend pas que âpres vous, aider moi s'il vous plais, j'aimerais bien pouvoir passer autre chose.

    Merci encore.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    J'aimerais relancer ma demande, j'ai toujours pas trouver, aider moi s'il vous plait.

  9. #9
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Voila les erreurs qui me sont souligner :

    Desktop
    java.awt.Desktop
    ou aussi
    Desktop.Action
    ou meme
    browse
    Ton IDE ne reconnait pas ces Classes car elles sont seulement disponible à partir de Java 6. Tu doit utiliser un SDK antérieur !

    Le code ci-dessous fonctionne parfaitement.

    Code : 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    import java.awt.Desktop;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.URISyntaxException;
    import java.net.URL;
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JEditorPane;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.event.HyperlinkEvent;
    import javax.swing.event.HyperlinkListener;
     
    public 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://abcdugimp.free.fr'>" 
    				+ "cette page</a> pour mettre à jour le logiciel</center><center>"
    				+ " © Copyright 2008 @ <a href='http://www.google.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());
    					System.out.println("URL => "+ev.getURL());
    				}
    			}
    		});
    		JOptionPane.showMessageDialog(null, pane, titre,
    				JOptionPane.INFORMATION_MESSAGE, icon);
    	}
     
    	protected void viewURL(URL url) {
    		if (Desktop.isDesktopSupported()) {
    			if (Desktop.getDesktop().isSupported(java.awt.Desktop.Action.BROWSE)) {
    				try {
    					java.awt.Desktop.getDesktop().browse(url.toURI());//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");
    		}
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		JFrame f = new JFrame();
    		JButton btn = new JButton("a propos");
    		btn.addActionListener(new FichierAPropos());
    		f.setContentPane(btn);
    		f.setLocationRelativeTo(null);
    		f.setVisible(true);
    	}
     
    }
    Installe Java 6, tu n'a que des avantages à le faire, à moins que l'appli que tu développe soit si complexe, que la migration devienne un casse-tête, mais comme tu es débutant, ça ne devrait vraiment pas être le cas.

    http://java.sun.com/javase/downloads/?intcmp=1281

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

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    j avais bien java 6 UPDATE 3 mais je vois que sur le lien que tu ma filer c est le UPDATE 4 je vais essayer de l installer pour voir ce que sa donne.

    juste une question, le lien que tu ma donner il y a plusieurs JDK 6 il y en a t il un qui complète l autres, ou faut que j en prenne un particulier, j ai pris le premier pour le moment qui me semble logique, mais les autres a quoi serve t il.

    pour ce qui est de mon application, je c est pas si elle est complexe, il s agit d un éditeur de tutoriel ( comme le SDZ mais en plus jolie et complet) pour aider a la rédaction de tuto sur mon site, avec un explorateur sur gauche, un onglet d édition et un de prévisualisation de ce que sa donne comme sur le graphisme du site. moi sa me semble assez complexe pour une première, mais bon progressivement on arrive a tout, enfin j espère arriver au bout, je suis motiver en tout cas.


    et merci de ton aide visiwi

  11. #11
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Quand je disais "compexe" je voulais dire qu'elle implémenterais des choses lourdes qui seraient remis en question par Java 6 et qui demanderait alors un investissement en terme de travail, pour que le code s'exécute de nouveau correctement.

    Je pense que tu n'auras pas de problème.

    Pour les liens, ils te permettent de télécharger netBeans en +, ou bien seulement le JRE, la javadoc, les sources, etc...

    Le premier lien convient surement bien a ton cas

    Tu peut aussi télécharger la doc "Java SE 6 Documentation", et si tu utilise Eclipse tu peut lui indiquer le chemin de la javadoc, ce qui fait que dans ta fenêtre de développement, quand tu survol une classe, une méthode, tu as la javadoc en ToolTipText, c'est indispensable de mon point de vue.

    Si tu avais Java6Up3 je ne suis pas assez connaisseur des différentes versions, mais il me semble que cette version intégrait déjà java.awt.Desktop.
    En tout cas si elle est souligné en rouge c'est que ton IDE ne la reconnait pas, qu'elle qu'en soit la raison. Le problème vient de là.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Comme IDE j utilise JBuilder 2007; Comment faire pour que mon IDE reconnaisse java.awt.Desktop. c est bizard avec un IDE comme JBuilder en version pro ne le reconnaisse pas .

    bon je vais voir tout sa et faire les essai, merci pour tes renseignement.

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Vérifie que ton projet utilise la machine java 6. Je ne maîtrise pas Netbeans, mais avec Eclipse, c'est parfois le cas : il faut préciser la version de la JVM que tu souhaites utiliser.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut régler
    voila j ai reconfigurer JBuilder, j ai ai ajouter la nouvelle version du JRE qui été sur la version 5.

    j ai donc réessayer en reprenant le code et sa fonctionne très bien maintenant

    merci beaucoup pour votre aide.

+ 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, 16h17
  2. Transparence controle dans boite de dialogue
    Par coco21 dans le forum MFC
    Réponses: 7
    Dernier message: 23/02/2008, 00h38
  3. CPaintDC dans boite de dialogue
    Par Denn's dans le forum MFC
    Réponses: 4
    Dernier message: 23/10/2007, 17h08
  4. Taille de texte dans boite de dialogue
    Par Mirna dans le forum MFC
    Réponses: 2
    Dernier message: 16/11/2006, 15h40
  5. Icone dans boite de dialogue
    Par remixes dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/09/2006, 14h47

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