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

Agents de placement/Fenêtres Java Discussion :

JOptionPane "à la main"


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut JOptionPane "à la main"
    Bonjour,

    Je souhaite pouvoir personnaliser tous les composants d'une boite de dialogue de type JOptionPane (couleur du fond, icone, etc...).
    Je ne sais si cela est possible avec le JOptionPane standard.
    Sinon, existe t-il des squelettes permettant de fabriquer sa propre boite de dialogue ?
    d'avance merci.

  2. #2
    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à il ne faut pas oublier que le "message" d'un JOptionPane est un Object, et qu'il ne correspond pas forcément à une simple chaine de caractère

    On peut déjà faire beaucoup de chose en cumulant cela avec la méthode la plus complète : showOptionDialog() :

    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
    JOptionPane.showOptionDialog(
     
    		// Le composant parent.
    		// Si on met un composant, le popup sera centré sur lui
    		// et sa fenêtre sera bloqué par la boite de dialogue
    		null,
     
    		// Le message affiché dans la boite de dialogue.
    		// Ce message peut correspondre à plusieurs type d'objets :
    		//	* Un tableau => chacun de ses éléments sera traité récursivement,
    		//			et affiché les uns au dessous des autres...
    		//	* Un Component => il sera ajouté dans la boite de dialogue
    		//	* Une Icon => elle sera affiché dans un JLabel
    		//	* Tous les autres objets seront affiché dans un JLabel via un toString()
    		new Object[] {  "Hello !", new JCheckBox("checkbox"), new JButton("bouton")}, 
     
     
    		// Le titre de la boite de dialogue :
    		"Titre",
     
    		// Le type des boutons à afficher.
    		// Cela permet d'utiliser les choix de boutons standard
    		// (ok, ok/cancel, yes/no, yes/no/cancel)
    		JOptionPane.DEFAULT_OPTION,
     
    		// Le type de message
    		// Ceci défini par exemple l'icône par défaut à utiliser
    		// ou encore le son d'ouverture de la boite de dialogue (voir plus bas)
    		JOptionPane.PLAIN_MESSAGE, // Pas d'icone
     
    		// L'icone de la boite de dialogue.
    		// Si != null, l'icone sera affiché à la place de celle défini par le "messageType"
    		null,
     
    		// Les options personnalisés :
    		// Permet de redéfinir les boutons de selection de la boite de dialogue.
    		// Si != null, ce choix prend le dessus sur le paramètre "optionType". 
    		new String[]{"A", "B", "C"},
     
    		// La valeur initiale :
    		// Dans le cas où l'on défini des options personnalisés, ceci permet
    		// de donner le focus à l'un des boutons :
    		"B"
    );

    Après si tu veux plus de fonctionnalité il faudra utiliser directement le JOptionPane (voir le code de showOptionPane() pour cela).



    Note : pour activer les sons sur certains composants Swing, il faut utiliser le code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UIManager.put("AuditoryCues.playList",
        UIManager.get("AuditoryCues.allAuditoryCues"));
    AuditoryCues.playList (absent par défaut) doit contenir la liste des sons à jouer, et AuditoryCues.allAuditoryCues contient le code de tous les sons jouables


    a++

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    merci, mais comment, dans ce cas, changer la couleur de fond de la boite de dialogue ?

  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
    Le plus simple serait de passer par l'UIManager : http://www.developpez.net/forums/d65...d-joptionpane/

    a++

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    ah oui, cool

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

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