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

Graphisme Java Discussion :

lien hypertexte dans drawString


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Par défaut lien hypertexte dans drawString
    Bonjour,

    je voudrais inclure un lien html dans un splash screen avec drawScreen mais ce que j'ai tenté ne marche pas :

    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
     
    try {
    	final SplashScreen splash = SplashScreen.getSplashScreen();
    	Graphics2D g = splash.createGraphics();
    	g.setComposite(AlphaComposite.Clear);
    	g.setPaintMode();
    	g.setColor(Color.BLACK);
    	g.drawString("Please visit our website at <a href=\"http://www.mysite.com\">http://www.mysite.com</a>", 110, 370);
    	splash.update();
    	try {
    		Thread.sleep(3000);
    	} catch (InterruptedException e) {}
    	splash.close();
    } catch (NullPointerException e) {
    	System.out.println("Splash Screen image not found");
    }
    Tout ce que j'obtiens c'est qu'il affiche la commande html en plain text.
    Quelqu'un a une idée?

    Renaud

  2. #2
    Membre Expert
    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
    Par défaut
    Salut,

    Tu peint sur ton splash et ce ne sont que des pixels. Tu ne pourra pas avoir un lien hypertexte de cette façon.
    De plus je ne crois pas qu'il soit possible d'ajouter des composants sur un SplashScreen Swing. Il va donc probablement que tu écrive une classe (un Jwindow par exemple) de remplacement qui te permettra d'ajouter un composant (voir plus loin l'exemple avec l'EditorPane).

    Voici un exemple pour avoir un lien hypertexte, a partir d'un JEditorPane :
    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
    import java.awt.Desktop;
    import java.io.IOException;
    import java.net.URISyntaxException;
    import java.net.URL;
    import javax.swing.JEditorPane;
    import javax.swing.JOptionPane;
    import javax.swing.event.HyperlinkEvent;
    import javax.swing.event.HyperlinkListener;
     
    public class FichierAPropos {
     
    	public static void viewURL(URL url) {
    		if (Desktop.isDesktopSupported()) {
    			if (Desktop.getDesktop()
    					.isSupported(java.awt.Desktop.Action.BROWSE)) {
    				try {
    					Desktop.getDesktop().browse(url.toURI());// lien
    				} catch (IOException ex) {
    					// 
    				} catch (URISyntaxException uri) {
    					// 
    				}
    			} 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");
    		}
    	}
     
    	public static void main(String[] args) {
    		String contenue = "<html>Allez sur la page d'accueil de <a href='http://www.google.com'>Google</a></html>";
    		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, "Lien ", JOptionPane.INFORMATION_MESSAGE);
    	}
     
    }
    En espérant que ça puisse t'avancer.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par visiwi Voir le message
    De plus je ne crois pas qu'il soit possible d'ajouter des composants sur un SplashScreen Swing.
    Je confirme, si tu veux un splashscreen dynamique, va falloir faire une jwindows, lui donner la taille et la position du splashscreen et cacher le splashscreen.

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

Discussions similaires

  1. lien hypertexte dans une zone de liste
    Par corwin44 dans le forum Access
    Réponses: 1
    Dernier message: 02/11/2005, 11h48
  2. lien hypertexte dans le corps d'un mailto
    Par ludovik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/10/2005, 16h10
  3. [MFC] liens hypertexte dans un CRichEditCtrl
    Par hiko-seijuro dans le forum MFC
    Réponses: 1
    Dernier message: 15/06/2005, 12h14
  4. Réponses: 3
    Dernier message: 26/10/2004, 07h31
  5. lien hypertexte dans une anim flash
    Par vedder dans le forum Flash
    Réponses: 17
    Dernier message: 14/01/2004, 14h11

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