Bonjour
Je n'arrive à afficher mes libellés de colonne de ma JTable
que lorsqu'elle est dans un jscrollpane
n'y a t'il pas un moyen de les afficher sans scrollpane
sachant que je créer une Jtable à l'aide dun default model
Merci pour vos réponses
Bonjour
Je n'arrive à afficher mes libellés de colonne de ma JTable
que lorsqu'elle est dans un jscrollpane
n'y a t'il pas un moyen de les afficher sans scrollpane
sachant que je créer une Jtable à l'aide dun default model
Merci pour vos réponses
Salut,
Merci de lire la doc !!!
http://javasearch.developpez.com/j2s...ng/JTable.html
a++Note that if you wish to use a JTable in a standalone view (outside of a JScrollPane) and want the header displayed, you can get it using getTableHeader() and display it separately.
Bin moi et l'anglais on est pas trop copain
Vous auriez pas une exemple à me montrer car je vois pas à quoi sert la méthode getTableHeader()
Il reste l'API sinon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //aligne le texte dans les headers ((DefaultTableCellRenderer)tableau.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(SwingConstants.CENTER); // empeche l'utilisateur de changer les positions des colonnes tableau.getTableHeader().setReorderingAllowed(false);
API JTABLE HEADER
Si tu n'arrives pas à lire une doc comme la javadoc, le mieux serait de changer de métier... parce que sinon tu vas vraiment avoir du malEnvoyé par sandytarit
![]()
La javadoc est LA référence à consulter avant tout !
Ben cela te renvoi le composant correspondant à l'entête des libellés de colonnes, et c'est donc à toi de l'afficher...Envoyé par sandytarit
a++
Si je fais comme ca il n'apparaisse toujours pas
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 private DefaultTableModel getModel() { if(model==null){ model = new DefaultTableModel() { public boolean isCellEditable(int iRowIndex, int iColumnIndex) { return false; } }; model.setDataVector(data1,libelle); JTableHeader head ; head=getJxTable().getTableHeader(); head.setVisible(true); } return model; }
Cela n'a rien à faire dans getModel() !!!
Il faut simplement que tu ajoute le composant renvoyé par getTableHeader() dans le composant qui contient ta JTable...
a++
Le JTableHeader est un composant swing comme un JLabel ou une JTable et de ce fait tu dois l'ajouter à un container pour qu'il s'affiche.
Donc grosso merdo tu mettes ta JTable et ton JTableHeader dans un même JPanel,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 JTable maTable = new JTable(...); JPanel p = new JPanel(); p.setLayout(new BorderLayout()); p.add(maTable.getTableHeader(), BorderLayout.NORTH); p.add(maTable, BorderLayout.CENTER);
si je fais comme ca ça marche
mais par contre si je veux que mes colonnes ne bougent pas, je fais ca et la la méthode add est souligné comme une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part jPanelCenter.add(getJxTable().getTableHeader(),BorderLayout.NORTH);
Y a t'il un moyen de bloquer les colonnes autrement que comme ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part jPanelCenter.add(getJxTable().getTableHeader().setReorderingAllowed(false),BorderLayout.NORTH);
Bin en fait c bon la méthode set....(false)
je l'ai mis dans ma méthode getJxtable même si c'est pas très propre
Le composant est affiché selon ton LayoutManager...Envoyé par sandytarit
Tu ajoutes bien ta JTable en plus du header au moins ???Envoyé par sandytarit
Petite question : Pourquoi ne pas utiliser le JScrollPane ? C'est quand même plus propre non ?
a++
Partager