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 :

pas de ScrollBar dans un JSplitPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut pas de ScrollBar dans un JSplitPane
    Bonjour à tous,

    je galère depuis quelques heures sur ce problème.

    j'ai un panel qui est en fait un JSplitPane.
    Sur le coté gauche, j'ajoute des éléments de contrôles (ComboBox, Texte , .. et sur le coté droit j'ai une table

    Ma table est trop large pour être visualisée entièrement , j'ai donc mis un JScrollPane pour permettre la visualisation de la table

    De même, j'ai mis un JScrollBar pour la partie contrôle dans le cas je ne pourrais pas visualiser tous les éléments de contrôles

    Mais voila, les ascenseurs n'apparaisse pas. c'est comme ci les ascenseurs étaient lié au différents panels, pas à la chaque parties visibles du JSplitPane.
    En les frocant, c'est comme ci ils n'étaient pas nécessaires

    qui peut m'expliquer comment résoudre ce problème
    Merci d'avance
    voici mon code

    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
     
    public class TabVisuPanel extends JSplitPane {
     
      private JComboBox tableSelector;
      private JTable    tableDisplay;
     
      public TabVisuPanel() {
        super();
     
        /* Gestion général du panneau */
        setDividerSize(2);
        setDividerLocation(250);
     
        /* Creation du panneau de control */
        JPanel controlPanel = new JPanel();
        controlPanel.setLayout(null);
     
        JLabel label = new JLabel("Selection d'une table :");
        label.setBounds(410,10,200,20);
        tableSelector = new JComboBox();
        tableSelector.setBounds(10,35,200,20);
        controlPanel.add(tableSelector);
        controlPanel.add(label);
        setLeftComponent(new JScrollPane(controlPanel));
     
        /* Creation du panneau de visualisation des données */
        tableDisplay = new JTable(new TabVisuModel());
        JScrollPane scrollPane = new JScrollPane(tableDisplay);
        setRightComponent(scrollPane);
     
        /* On initialise la largeuer des colonnes de la table */
        TableModel model = tableDisplay.getModel();
        for (int i=0 ; i< model.getColumnCount(); i++){
          tableDisplay.getColumnModel().getColumn(i).setMinWidth(100);
          tableDisplay.getColumnModel().getColumn(i).setResizable(true);
        }
     
        validate();
      }
    }
    Page sur Developpez : http://pbriand.developpez.com

  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,



    Évites d'utiliser le layout "null", où alors calcule la taille préféré de ton container...

    a++

  3. #3
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    Bonjour adiGuba

    Merci pour ta réponse, elle a résolu une partie de mon problème.

    Sur la partie contrôle, j'ai utilisé un BoxLayout et cela fonctionne correctement

    Je mes suis dit bêtement que je pouvais faire la même chose du coté data, et j'obtiens bien mon ascenseur.
    Mais voila que la barre header de ma table a disparu !!!!!

    le code est devenu
    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
     
      public TabVisuPanel() {
        super();
     
        /* Gestion général du panneau */
        setDividerSize(2);
        setDividerLocation(250);
     
        /* Creation du panneau de control */
        JPanel controlPanel = new JPanel();
        controlPanel.setLayout(new BoxLayout(controlPanel, BoxLayout.PAGE_AXIS));
     
        /* Ajout des elements du tableau de controle */
        JLabel label = new JLabel("Selection d'une table :");
        tableSelector = new JComboBox();
        tableSelector.setMaximumSize(new Dimension(300,20));
        controlPanel.add(Box.createRigidArea(new Dimension(100,10)));
        controlPanel.add(label);
        controlPanel.add(Box.createRigidArea(new Dimension(100,5)));
        controlPanel.add(tableSelector);
        setLeftComponent(new JScrollPane(controlPanel));
     
        /* Creation du panneau de visualisation des données */
        JPanel dataPanel = new JPanel();
        dataPanel.setLayout(new BoxLayout(dataPanel,BoxLayout.PAGE_AXIS));
        tableDisplay = new JTable(new TabVisuModel());
        tableDisplay.setFillsViewportHeight(true);
        tableDisplay.setAutoCreateRowSorter(true);
        dataPanel.add(tableDisplay);
        setRightComponent(new JScrollPane(dataPanel));
     
        /* On initialise la largeur des colonnes de la table */
        TableModel model = tableDisplay.getModel();
        for (int i=0 ; i< model.getColumnCount(); i++){
          tableDisplay.getColumnModel().getColumn(i).setMinWidth(100);
          tableDisplay.getColumnModel().getColumn(i).setResizable(true);
        }
      }
    Si je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        dataPanel.add(new JScrollPane(tableDisplay));
        setRightComponent(new JScrollPane(dataPanel));
    La barre de header de ma table apparait, mais mon scrollBar disparait !!!!!
    J'ai comme l'impression de tourner en rond

    si tu as une piste je suis preneur
    A+
    Page sur Developpez : http://pbriand.developpez.com

  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
    Citation Envoyé par briand patrick Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        dataPanel.add(new JScrollPane(tableDisplay));
        setRightComponent(new JScrollPane(dataPanel));
    La barre de header de ma table apparait, mais mon scrollBar disparait !!!!!
    J'ai comme l'impression de tourner en rond
    Le header n'apparait automatiquement QUE si la JTable est placé dans une JScrollPane : il ne faut pas utiliser de JPanel intermédiaire.

    Donc c'est bien cette dernière solution qu'il faut utiliser, quoique tu peux carrément te passer du dataPanel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setRightComponent(new JScrollPane(tableDisplay));

    Quand à ton problème de scrollbar :
    • S'il s'agit de la scrollbar vertical, elle n'apparait QUE dans le cas où tu as suffisamment de contenu.
    • Par contre par défaut la scrollbar horizontal n'apparait pas car la JTable se redimensionnent automatiquement en largeur selon la place disponible. Pour éviter cela il faut utiliser le code suivant :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      tableDisplay.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


    a++

  5. #5
    Membre émérite
    Avatar de bpy1401
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 511
    Par défaut
    merci adiGuba
    Tout est ok maintenant
    Page sur Developpez : http://pbriand.developpez.com

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

Discussions similaires

  1. [XL-2010] Nom change mais pas la photo dans userform avec scrollbar
    Par gilt83 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 19/05/2014, 19h45
  2. Pas de scrollbar dans mon client web
    Par kacedda dans le forum Flex
    Réponses: 4
    Dernier message: 04/11/2008, 11h37
  3. Pas de scrollbar dans mon datagrid
    Par vilcoy dans le forum VB.NET
    Réponses: 11
    Dernier message: 21/03/2007, 15h19
  4. Je ne retrouve pas ma SP dans Query analyser
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/07/2003, 12h43
  5. Pas de casse dans les XML
    Par :GREG: dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 13h51

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