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 : récupérer ce qui dessine les onglets


Sujet :

AWT/Swing Java

  1. #1
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut JTabbedPane : récupérer ce qui dessine les onglets
    Salut,

    Dans le cadre d'un projet, j'ai besoin d'un tableau à onglet un peu spécial (http://www.developpez.net/forums/sho...d.php?t=345921).

    Pour le moment j'ai créé un composant qui étend JTabbedPane, mais je souhaiterais maintenant étendre JComponent, et avoir 2 parties: en haut (par exemple) les onglets, au centre un JPanel en CardLayout pour afficher le composant sélectionné.

    Le problème, c'est que pour dessiner les onglets et que leur apparence dépende du look & feel, je ne sais pas comment faire (je voudrais qu'ils aient exactement la même apparence que dans JTabbedPane).

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    Salut,

    je travaille aussi sur les onglets et donc les TabbedPanel !

    Cependant je n'arrive pas à les rendre aussi joli que les tiens :
    (http://www.developpez.net/forums/sho...d.php?t=345921).

    Pourrais je savoir comment tu as fait pour faire tes onglets ?

    Moi j'utilise simplement les TabbedPanel avec les TitelTab et les ScrollPanel !

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par fabred
    Pourrais je savoir comment tu as fait pour faire tes onglets ?
    C'est juste le look and feel.

    Dans ton programme, rajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    	e.printStackTrace();
    }

  4. #4
    Membre confirmé Avatar de fabred
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2007
    Messages : 180
    Par défaut
    OK, merci beaucoup Rom

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Je pense qu'il faut utiliser TabbedPaneUI, mais aucune idée comment faire pour reproduire la barre des onglets...

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En cas, le mécanisme utilisé par Swingx quand un composant custo est créé, malheureusement, ce n'est pas forcément le top pour toi(car il faudrait redéfinir les UI pour tous les L&F).

    https://jdnc-incubator.dev.java.net/...eelAddons.html

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par sinok
    En cas, le mécanisme utilisé par Swingx quand un composant custo est créé, malheureusement, ce n'est pas forcément le top pour toi(car il faudrait redéfinir les UI pour tous les L&F).
    Oui mais vu que ces UI sont déjà existants pour le JTabbedPane, je souhaiterais les utiliser juste pr dessiner les onglets. Le mécanisme je ne veux pas celui du JTabbedPane, mais l'apparence oui.

  8. #8
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Pourquoi repartir de zéro ? Que ne peux-tu pas faire en étendant JTabbedPane ?

  9. #9
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par Gfx
    Pourquoi repartir de zéro ? Que ne peux-tu pas faire en étendant JTabbedPane ?
    - Avec JTabbedPane, pour déplacer un onglet, on est obligé de supprimer le composant associé, puis de le rajouter à un autre endroit. Si on a un composant heavyweight, par exemple un lecteur vidéo, c'est génant, il faut stopper la vidéo (alors qu'on peut très bien imaginer déplacer juste l'onglet). C'est la raison principale.

    - Après, je ne sais pas pourquoi JTabbedPane est si mal fait et qu'il n'utilise pas de Model (complet) comme ListModel... Du coup j'ai implanté le mécanisme de modèle, mais il reste toutes les méthode add() pour ajouter des composants sans passer par le modèle...


    Je ne veux pas repartir de zero, je voudrais utiliser tout l'affichage de JTabbedPane, je veux simplement refaire tout le mécanisme...

  10. #10
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Tu as pensé aux frameworks de docking? Ils permettent tous de faire cela déjà.

  11. #11
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par Gfx
    Tu as pensé aux frameworks de docking? Ils permettent tous de faire cela déjà.
    J'ai regardé MyDoggy et InfoNode, qui sont très bien, mais qui ne font pas exactement ce que je souhaite.
    Je veux juste un tableau à onglets (pas de docking) où l'on puisse détacher les onglets dans une fenêtre séparée. Par exemple le tableau à onglets d'infonode ne permet pas ça, il faut passer par le docking pour séparer la fenêtre. Quant à MyDoggy, il ne semble pas faire tableau à onglets... On peut le simuler par le docking, mais on n'a pas de beaux onglets qui suivent le look & feel comme JTabbedPane.

    De plus, je souhaiterais faire un petit composant moi-même pour voir comment ça marche réellement Swing (s'il faut en copiant-collant du code de JTabbedPane / TabbedPaneUI). Faut juste que je sache comment prendre son rendu d'onglets...

  12. #12
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Citation Envoyé par ®om
    (s'il faut en copiant-collant du code de JTabbedPane / TabbedPaneUI)
    Je ne vois que ça... Eplucher le code du JTabbedPane pour retrouver où et comment il dessine les onglets, puis voir comment faire pour soit appeler cette méthode (ce qui serait nickel, puisque ton composant évoluerait en même temps que le JTabbedPane), soit faire du copier coller...

    Bon courage

  13. #13
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Malhereusement ça ne marchera pas:

    TabbedPaneUI est une classe purement abstraite, ne contenant aucune ligne de code.
    Et ses diverses implémentation on explicitement besoin d'un JTabbedPane pour fonctionner, donc la voie sur laquelle tu t'engages n'est pas franchement réalisable.

    Le seul moyen serait repomper à fond le code des différentes UI du JTabbedPane, mais bon, dès que tu affronteras un l&f natif tu risqueras d'avoir un tant soit peu de mal...

Discussions similaires

  1. JTabbedPane: ordonner les onglets
    Par piotrr dans le forum NetBeans
    Réponses: 1
    Dernier message: 18/02/2008, 20h29
  2. Renommer les onglets d'un JTabbedPane
    Par restricteur dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 14/09/2007, 18h02
  3. [JTabbedPane] Rafraichir tous les onglets
    Par Peezy dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 28/11/2006, 17h11
  4. Du gris sous les onglets (JTabbedPane)
    Par JMLLB dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 16/10/2006, 05h38
  5. Réponses: 5
    Dernier message: 28/07/2006, 15h33

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