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

Composants Java Discussion :

jtable et scroll horizontal


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Par défaut jtable et scroll horizontal
    Bonjour,
    voila j'ai une jtable qui contient environ 20 colonnes, j'aimerais disposer d'un scroll horizontal pour que l'on puisse voir le contenu des cellules.

    j'ai bien essayer de changer la taille de ma JTable mais ca ne marche pas.

    Je n'ai pas trouver de moyen tres simple pour le faire:

    dans un Jscrollpane je pose un JPanel, sur ce Jpanel je pose un autre JScrollpane dans lequel je met enfin ma JTable. il faut ensuite de mettre le JPanel et le 2eme JScrollpane a la bonne taille pour avoir du scroll horizontal.

    Quelqu'un saurait il si on peut le faire de maniere plus simple et plus propre?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Personnellement Je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JTable table = new JTable(...);
    ...
    JScrollPane scroll = new JScrollPane();
    scroll.setViewportView(table);
    et mon scroll horizontal apparaît si nécessaire...
    Ensuite je place on JScrollPane dans ma fenêtre pas besoin de couche supplémentaire

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Par défaut
    Citation Envoyé par George7
    Salut,

    Personnellement Je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JTable table = new JTable(...);
    ...
    JScrollPane scroll = new JScrollPane();
    scroll.setViewportView(table);
    et mon scroll horizontal apparaît si nécessaire...
    Ensuite je place on JScrollPane dans ma fenêtre pas besoin de couche supplémentaire

    c est bien ce que j ai fai au debut, le scroll vertical et bien la, mais le scroll horizontal n'est pas la.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dimension d=new Dimension(3000,3000); 
    matable.setSize(d);
    matable.setPreferredSize(d);
    matable.setMinimumSize(d);
    ceci ne donne rien pour le scroll horizontal mais marche tres bien pour le vertical

  4. #4
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for(int i=0;i<matable.getColumnModel().getColumnCount();i++)
    				matable.getColumnModel().getColumn(i).setMinWidth(500);
    je vien d'essayer ce code pour mettre une taille a chaque colonne, mais bon ca marche pas non plus, avec ce code je vois les 2 premiere colonne sur les 20 et toujours pas de scroll ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tu peux me mettre le code qui marche pas en entier s'il te plaît ?
    Je vais voir y'a pas de raison que ca marche chez moi et pas chez toi...

  6. #6
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Par défaut
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    public class table extends JScrollPane implements MouseListener, MouseMotionListener, ComponentListener
    {
     
      protected DefaultTableModel dtm_model ;
      protected JTable jt_table;
    public table()
      {
     
        super();
        dtm_model=new TableModelEtendu();
        jt_table=new JTable(dtm_model);
        setViewportView(jt_table);
        CellObjectRenderer objRender = new CellObjectRenderer();
        jt_table.setDefaultRenderer(java.lang.Object.class,objRender);
        jt_table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        jt_table.addMouseListener(this);
        jt_table.addMouseMotionListener(this);
        this.addComponentListener(this);
        this.addMouseListener(this);
        this.addMouseMotionListener(this);
     
    }
    //ajoute les colonnes en fonction d'une requete bdd
    public void mettreTitre(ResultSetMetaData metaData)
    	{
    		jt_table.setModel(new TableModelEtendu());
    		dtm_model=(DefaultTableModel)jt_table.getModel();	
     
    		try {
    			for (int i=1;i<=metaData.getColumnCount();i++)
    			{
    				dtm_model.addColumn(metaData.getColumnName(i));
    			}
     
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
     
    //rempli la table avec la requete bdd
    private void remplirLignes(PreparedStatement pstt)
    	{
    		try {
    			ResultSet rs=pstt.executeQuery();
    			tableMessages.vider_table();
    			tableMessages.mettreTitre(pstt.getMetaData());
     
    			Object[] tab;
    			while(rs.next())
    			{	
    				tab=new Object[rs.getMetaData().getColumnCount()];
    				for(int i=0;i<tab.length;i++)
    				{
    					tab[i]=rs.getString(i+1);
    				}
    				tableMessages.dtm_model.addRow(tab);	
    			}
    			rs.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
     
    	}
     
     
     
     
    /*... */
    }

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ensuite tu ajoutes ce composant dans ta fenêtre de quelle manière ? (quand ca ne marche pas...)

  8. #8
    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,


    Il suffit d'utiliser setAutoResizeMode() pour empêcher la JTable de redimensionner ses colonnes (ce qui forcera le scrollbat horizontal) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    a++

  9. #9
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 50
    Par défaut
    Merci ca marche

  10. #10
    Invité
    Invité(e)
    Par défaut
    Argh voilà la différence avec ce que j'écrivais... Bien vu adiGuba, j'avais pourtant il me semble eu le coup la première fois...

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

Discussions similaires

  1. JTable et scroll horizontal défectueux
    Par joejoe1 dans le forum Composants
    Réponses: 7
    Dernier message: 28/12/2011, 08h36
  2. scroll horizontal sur qlq colonnes d'1 tableau ????
    Par nicassy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/02/2006, 12h01
  3. scroll horizontal largeur maximale ?
    Par moque dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/01/2006, 14h32
  4. synchroniser le scroll horizontal d'un Tmemo avec un Tedit
    Par bambino3996 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2005, 12h06

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