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 :

JTabbedPane autoriser ou pas le changement d'onglet


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut JTabbedPane autoriser ou pas le changement d'onglet
    Bonjour à tous,

    J'utilise un JTabbedPane dont chaque élément contient une IHM spécifique permettant d'effectuer des modifications sur des données. S'il y a des modifications apportées à ces données, l'utilisateur a la possibilité de les sauvegarder ou pas.

    Si l'utilisateur change d'onglet et que des modifications ont été apportées alors le système lui demande via une boîte de dialogue s'il souhaite sauvegarder les données. La boite de dialogue contient trois options : Oui (sauvegarde), Non (ne sauvegarde pas), Annuler (ne sauvegarde pas et ne change pas d'onglet).

    Pour en revenir à ma question, comment faire pour éviter de changer d'onglet même si on a explicitement demandé de changer d'onglet.

    Exemple : le contenu de l'onglet 1 est actuellement visible, je clicke sur l'onglet 2 => résultat : l'onglet 1 est toujours actif

    J'espère avoir été clair
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    je crois que le plus efficace sera de surcharger les méthodes setSelectedIndex/Component de cette manière :
    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
    public class SaverTabbedPane extends JTabbedPane {
     
      // remettre quelques constructeurs
     
      public void setSelectedIndex(int index) {
        if(save())
          super.setSelectedIndex(index);
      }
     
      public void setSelectedComponent(Component c) {
        if(save())
          super.setSelectedComponent(c);
      }
     
      // vérifie si il est nécessaire de sauver les données
      // si oui, demande si il faut les sauver
      // retourne vrai si l'utilisateur confirme le changement d'onglet
      // (clic sur oui ou non), faux si l'utilisateur annule
      private boolean save() {
        if(dataChanged())
          JOptionPane.show...Dialog(...);
          ...
      }
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut
    Merci beaucoup pour cette réponse qui fonctionne à merveille. Tu n'as besoin que de surcharger la méthode setSelectedIndex.

    Encore merci
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

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

Discussions similaires

  1. Lors d'un changement d'onglet la couleur de background ne change pas
    Par alaninho dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/11/2013, 14h58
  2. [JTabbedPane] Comment détecter le changement des onglets
    Par sinpay dans le forum Composants
    Réponses: 4
    Dernier message: 17/09/2009, 07h49
  3. Récupérer l'évenement "changement d'onglet" dans un JTabbedPane.
    Par minanoun dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 06/04/2009, 22h10
  4. [JTabbedPane] détecter le changement d'onglet
    Par Invité dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 31/08/2006, 10h20
  5. Réponses: 5
    Dernier message: 10/06/2006, 11h07

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