Salut,

Envoyé par
nir63
mais j'ai encore un problème au niveau d'affichage, je veux que les lignes doit être constante sa veux dire qu'il ne change pas, il doit etre visible,
Que veux tu dire par "lignes constantes" ? Tu parles de la taille des colonnes ?
Si tu veux que les colonnes ne se redimensionnent pas à chaque ajout, tu peux désactiver le redimensionnement automatique par :
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
Si tu veux que les utilisateurs ne puisse pas changer la taille des colonnes, il va falloir que tu créés tes colonnes "à la main", quand tu ajoutes une colonne.
Premièrement, il faut désactiver la création automatique par :
table.setAutoCreateColumnsFromModel(false);
Ensuite, il te faudra passer l'instance de JTable à la méthode setColumnNumber, puis à chaque fois que tu ajoutes une colonne :
1 2 3 4 5
| tableModel.addColumn("Column "+(i+1));
int width=150; // exemple de largeur de colonne
TableColumn tableColumn = new TableColumn(i,width);
tableColumn.setResizable(false); // pour que l'utilisateur ne puisse pas changer la taille
table.addColumn(tableColumn); |
Si tu veux que les colonnes ne puissent pas être déplacées :
table.getTableHeader().setReorderingAllowed(false);

Envoyé par
nir63
et lorsque j'ai voulu écrire ce code j'ai trouvé un problème
final JTable tableau = new JTable(donnees,tableModel);
Normal, ce constructeur n'existe pas ! Qu'est-ce que tu cherches à faire ?

Envoyé par
nir63
je veux que le premier colonne doit etre inchangée pour les donnée après je peux ajouter les colonne avec un Jcombox
Tu veux créer une première colonne fixe, dès le départ, qui ne dépend pas du nombre qu'il y a dans la combo, c'est ça ?
Il te faut initialiser le modèle avec les données de la première colonne :
1 2 3 4 5 6 7 8 9
|
int nbLignes = 3; // exemple de nombres de lignes initiales
Object[][] data = new Object[nbLignes][1];
for(int i=0; i<nbLignes; i++) {
data[i][0]=d[i];
}
final DefaultTableModel tableModel = new DefaultTableModel(
data,
new Object[]{"Column 1"}); |
Il te faudra biensûr adapter la combo en conséquence.
Et enlever le bout de code suivant qui ne sert plus à rien :
1 2 3 4 5 6
|
if ( oldNumber==0 && tableModel.getRowCount()==0 ) {
String[][] donnees = {{"D(i)"," "," "," "," "," "," "}};
tableModel.addRow(new Object[donnees]);
} |
Partager