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 :

[JTable + JScrollpane] affichage de la scrollbar impossible


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut [JTable + JScrollpane] affichage de la scrollbar impossible
    bonjour à tous,

    voici ce que fait mon interface graphique :

    une JFrame qui contient un nombre variable de JInternalFrame.
    Cahque JInternalFrame est séparée en 2 parties grâce à un JSplitPane.
    La partie du haut est une JTable et la partie du bas une JTextArea.

    Je voudrais que la JTable soit dans une scrollpane afin de pouvoir la parcourir entièrement.
    Seulement la scrollbarre apparait mais sans le curseur de position je ne peux voir que les 19 premières lignes de ma JTable (sur plusieurs centaines), et bien entendu je ne peux pas monter ou descendre l'ascenseur.

    voici la méthode qui crée ma JTable et l'ajoute au ScrollPane :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private JScrollPane newActions(int procId)
        {	
    		actionsBox = new ActionTable(this,procId,commandsSettings,generalWindow);
    		actionsBox.getTableHeader().setReorderingAllowed(false);
     
    		scrollAction=new JScrollPane(actionsBox);
    		scrollAction.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    		scrollAction.setVisible(true);
     
    		return scrollAction;
        }
    et voici la méthode qui crée mes JSplitPane (qui recoit en paramètre une JInternalFrame) :
    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
     
    public void SplitPanes (int procnb, JInternalFrame intframe){
     
        	//Create one split pane with the scroll panes in them
    		splitpane=new JSplitPane (JSplitPane.VERTICAL_SPLIT, newActions(procnb), newConsole(procnb));
     
    		splitpane.setOneTouchExpandable(true);
    		splitpane.setResizeWeight(0.5);
     
        	// Add the components
    		intframe.add(splitpane, BorderLayout.CENTER);
     
        	intframe.setBounds(0, 0, PROCESSOR_WIDTH, PROCESSOR_HEIGHT);
    	   	intframe.setVisible(true);
    	   	splitpane.setVisible(true);
        }
    la méthode newConsole retourne (comme newAction) un scrollpane. C'est là que se trouve ma JTextArea.

    Merci de m'éclairer si vous avez des idées.

    JoNjOn

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Par défaut
    salut jon,
    je pense que sa vient du fait que tu n'as pas définie de taille préféré pour la visualisation de ta jtable.
    moi je fais comme sa, sa marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    table = new JTable(new MyTableModel(data, columnNames));
    table.setPreferredScrollableViewportSize(new Dimension(300, 100));
    
    table.setFillsViewportHeight(true);
    
    table.getSelectionModel().addListSelectionListener(new RowListener());
    
    // encapsule le tableau dans un scroll pan
    
    JScrollPane tableScrollPane = new JScrollPane(table);
    Essais et dis moi se que sa donne.

    edit :
    d'ailleurs un setPrefferedSize sur la tableScrollPane doit avoir le meme effet je pense

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 137
    Par défaut
    BONJOUR JoNjOn06 et bienvenue das ce super forum

    essayer de sortir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scrollAction.setVisible(true);
    de la methodenewActions puis dans la methode SplitPanes faite une instance de newActions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    newActions  action=newActions(procnb);
     
    action.scrollAction.setVisible(true);
    car je pense q'il faut faire l'ajout au Splite puis setVisible et pas l'inverse

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    merci pour vos réponses !

    apesle : j'ai ajouté ces 2 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    table.setPreferredScrollableViewportSize(new Dimension(300, 100));
     
    table.setFillsViewportHeight(true);
    il y a du mieux : la table est maintenant affichée entièrement (je peux la voir en agrandissant la fenètre et en diminuant la taille du splitpane du bas). mais toujours pas d'ascenseur à mon scrollpane, je ne peut donc pas parcourir la table.

    ouchemhou : j'ai sorti le setvisible(true), effectivement cela semble plus logique. mais malheureusement pas de changement.

    le problème ne peut-il pas venir du splitpane ?

    à titre indicatif, voici le constructeur de ma JTable :

    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
     
    public ActionTable(Processor fifo, int Id, Terminal terminal) {
     
            this.procId=Id;
            this.proc=fifo;
     
            //fonte
            Font f=new Font("SanSerif",Font.PLAIN,12);
            setFont(f);
            //gestionnaire de positionnement
            setLayout(new BorderLayout());
            //construction du modèle de remplissage à partir du fichier
            model = new ActionTableModel(fifo, Id, terminal);
     
            this.setModel(model);
     
            this.createDefaultColumnsFromModel();
     
     
            SetRenderer();
     
           }
    merci encore pour vos réponses.

    JoNjOn

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Par défaut
    tiens, voila un code d'exemple de 2 aire de textes, chacune dans un scroll pane, et séparées par un split pane :

    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
     
    aireTxt1.setEditable(false);
     
    		aireTxt2.setEditable(false);
     
    		JScrollPane scroll1 = new JScrollPane(aireTxt1);
     
    		JScrollPane scroll2 = new JScrollPane(aireTxt2);
     
    		scroll1.setVerticalScrollBarPolicy(
     
    				JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
     
    		scroll1.setBorder(utils.DiversUtil.recupererBordure(titreTxt1,bleuFonce,bleuProfond ));
     
    		scroll2.setVerticalScrollBarPolicy(
     
    				JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
     
    		scroll2.setBorder(utils.DiversUtil.recupererBordure(titreTxt2,vertFonce, vert));
     
    		JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
     
    				scroll1, scroll2);
     
    		scroll1.setPreferredSize(dimConsoles);
     
    		scroll2.setPreferredSize(dimConsoles);
     
    		splitPane.setOneTouchExpandable(true);
     
    		splitPane.setResizeWeight(0.5);
    //reste plus qu'a ajouter le splitpane au panel

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    toujours rien !!

    à noter que mes JSplitPane sont incluses dans une JInternalFrame qui est faite comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    JInternalFrame internalframe=new JInternalFrame ();
    			internalframe.setTitle("Processor "+i);
    			internalframe.setFrameIcon(PROCESSOR_ICON);
    			internalframe.setResizable(true);
    			internalframe.setMaximizable(true);
    			internalframe.setIconifiable(true);
    			internalframe.setClosable(true);
    			internalframe.setLayout(new BorderLayout());
    			internalframe.setVisible(true);
    			SplitPanes(i, internalframe);
    une idée ?

  7. #7
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 137
    Par défaut
    le meme problème ! inverser ces deux lignes


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    internalframe.setVisible(true);
              SplitPanes(i, internalframe);

    req: vous avez répeter internalframe.setVisible(true); et dans SplitePanes interframe.setVisible(true);

    sinon essayer de bien lire la discussion dans le lien suivant :

    http://www.developpez.net/forums/sho...d.php?t=591795

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

Discussions similaires

  1. Utilisation de JTable ou affichage en tableau
    Par volontier dans le forum Composants
    Réponses: 5
    Dernier message: 03/06/2006, 21h16
  2. [JTable] PB affichage dans une JTable
    Par ythim dans le forum Composants
    Réponses: 3
    Dernier message: 19/05/2006, 17h29
  3. 1ere colonne fixe Jtable ( JScrollpane )
    Par jdewalqu dans le forum Composants
    Réponses: 5
    Dernier message: 21/02/2006, 16h38
  4. jtable + jscrollpane + case sélectionnée
    Par gorgonite dans le forum Composants
    Réponses: 11
    Dernier message: 15/02/2006, 19h30
  5. [JScrollPane] Affichage dynamique des barres de scroll
    Par Atharendil dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 14/01/2006, 21h07

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