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 :

desactivation temporaire d'un des boutons de JOptionPane


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 107
    Points
    107
    Par défaut desactivation temporaire d'un des boutons de JOptionPane
    Bonjour,
    je rencontre une petite difficulté avec JOptionPane. Je souhaite afficher un JPanel avec deux ou trois trucs à cocher/remplir avant de passer à une étape suivante. Je veux donc que le bouton "Suivant" ne soit pas actif tant que les bonnes conditions ne sont pas réunies.

    Je pensais donc utiliser la méthode showOptionDialog en passant un tableau de JButton comme Objets pour faire la liste de choix et pouvoir agir à coté avec setEnabled(boolean b) sur mon bouton "Suivant". J'ai donc écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    annule=new JButton(ressources.getString("annule"));
    suivant=new JButton(ressources.getString("suivant"));
    JButton [] obj = {annule,suivant};
    JOptionPane.showOptionDialog(null,doFirstPanel(),ressources.getString("creation"),JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,obj,obj[0]);
    doFirstPanel() est une méthode interne privée qui me renvoie un JPanel qui s'affiche parfaitement sans problème.
    ressources est un RessourceBundle pour l'internationalisation

    Si je clique sur l'un ou l'autre bouton, rien ne se passe. Par contre si j'utilise un tableau d'objet String comme d'habitude:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Object[] obj={ressources.getString("annule"),ressources.getString("suivant")};
    tout va bien mais je ne contrôle pas si le Bouton "Suivant" est cliquable ou non.

    Comment est-ce au je peux réussir ce truc ?
    Avec quelque chose comme ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Object [] obj = {"annule","suivant"};
    JOptionPane pane = new JOptionPane(doFirstPanel(),JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,obj,obj[0]);
    JDialog dialog = pane.createDialog(null,ressources.getString("creation"));
    //récupérer les boutons ?
    dialog.show();
    mais dans ce cas, comment récupérer les boutons ?
    J'ai essayé de récupérer les boutons avec getOptions() mais ce que je récupère est ce que j'ai mis (plutot normal en fait ) , c'est à dire des JButtons mais inefficaces ou des Strings incontrôlables.

    Où alors je dois enregistrer mes boutons quelque-part avant de les passer en options ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    annule=new JButton(ressources.getString("annule"));
    suivant=new JButton(ressources.getString("suivant"));
    JButton [] obj = {annule,suivant};
    JOptionPane pane = new JOptionPane(doFirstPanel(),JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,obj,obj[0]);
    JDialog dialog = pane.createDialog(null,ressources.getString("creation"));
    //enregistrer les boutons quelque part  ?
    dialog.show();
    Dois-je laisser tomber le JOptionPane et créer moi même ma propre fenêtre modale ? à partir de Dialog par exemple?

    J'ai regardé le tuto Java qui propose une méthode pour faire un contrôle avant de fermer le JOptionPane si l'utilisateur clique trop tôt, mais je préfèrerais que l'utilisateur ne puisse pas du tout cliquer sur le bouton Suivant tant que les conditions ne sont pas réunis.

    merci pour votre aide .

    Bon code,
    kerinel

  2. #2
    Membre averti Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Points : 414
    Points
    414
    Par défaut
    bonjour,

    "suivant", "annuler"??? ca ressemble à un wizard, non?
    Si telle est le cas, il existe quelques librairies java pour faire ça, y compris http://sourceforge.net/projects/awl-wizard
    Dans tous les cas, la classe JOptionPane est quand même assez restictive pour l'adapter à ton besoin...
    auteur de Awl (http://awl-wizard.sourceforge.net), librairie de développement d'assistant en Java.
    auteur de Blackdog (http://www.blackdog-project.org), lecteur/gestionnaire audio en Java.

  3. #3
    Membre régulier Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Points : 107
    Points
    107
    Par défaut
    Mais c'est que ça m'a l'air rudement bien ça
    C'est effectivement ce qu'il me faut.
    C'est tout neuf en plus non ?
    Je m'en vais regarder cela de plus près.
    Merci bien,

    Bon code,
    kerinel

  4. #4
    Membre averti Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Points : 414
    Points
    414
    Par défaut
    c'est un projet sur lequel je travaille.
    N'hésite pas à me poser des questions si tu as besoin.
    Toutes critiques ou idées d'amélioration est la bienvenue.
    auteur de Awl (http://awl-wizard.sourceforge.net), librairie de développement d'assistant en Java.
    auteur de Blackdog (http://www.blackdog-project.org), lecteur/gestionnaire audio en Java.

Discussions similaires

  1. Couper temporairement un listener sur des boutons
    Par moudjames23 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 01/07/2015, 15h17
  2. desactiver des bouton pendant une animation
    Par haydens dans le forum Flash
    Réponses: 3
    Dernier message: 03/08/2008, 02h05
  3. activation et desactivation des boutons
    Par monphp dans le forum VBA Access
    Réponses: 7
    Dernier message: 11/07/2007, 17h25
  4. Desactiver temporairement les contraintes
    Par maitrebn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/10/2006, 17h58
  5. Réponses: 2
    Dernier message: 31/08/2002, 14h00

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