Augmentation des dimensions de cellulues d'une matrice

dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014 - 1 mai 2012 à 22:55
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 4 mai 2012 à 08:18
Bonjour,
je travaille avec Eclipse, j'affiche une matrice carrée de dimension 15, la 1ère ligue ainsi que la 1ère colonne contiennent des noms un peu longs, mais lors de l'affichage, ces noms ne seront pas affichés complètement (seulement la première syllabe) car les cellules sont petites.
Comment je peut augmenter les dimensions des cellules de ma matrice?
Merci.

9 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
2 mai 2012 à 08:15
Salut,

Comment affiches tu la matrice ?

Personnellement, je ferais un truc comme ca :

	public JPanel afficherMatrice() {
JPanel res = new JPanel(new BorderLayout());
JEditorPane p = new JEditorPane();
p.setEditable(false);
p.setOpaque(false);
p.setContentType("text/html");
StringBuilder sb = new StringBuilder();
sb.append("<html><head><style>");
sb.append(Parametres.style);
sb.append("</style></head>");
sb.append("\");
for(int i=0; i<valeurs.length; i++){
sb.append(\"----
\");
for(int j=0; j<valeurs[0].length; j++){
sb.append(\"");
sb.append(valeurs[i][j]);
sb.append(", \");
}
sb.append(\"\");
}
sb.append("
</html>");
p.setText(sb.toString());
res.add(p, BorderLayout.CENTER);
return res;
}
0
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
2 mai 2012 à 15:51
Bonjour; voilà ce que j'utilise:

vNomColonn.addElement("");
for(int z = 0; z < nbbb; z++){
vNomColonn.addElement(tab[z]);
}




for(int i = 0; i < tab.length; i++){
ligne = new Vector();

ligne.addElement(tab[i]);
for(int j = 0; j < tab.length; j++){

ligne.addElement(matrice[i][j]) ;

}

vtableau.addElement(ligne);
}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 mai 2012 à 08:30
Tu ne me donnes pas assez de code pour que je comprenne ce que tu utilises, vtableau, c'est quoi ?

Tu peux m'en donner un peu plus et utiliser les balises pour coloriser (troisième bouton en partant de la droite)
0
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
3 mai 2012 à 14:33
public AffMat() throws HeadlessException, ClassNotFoundException, SQLException, IOException, JDOMException {
super("Matrix");
setSize(900, 380);
setBounds(150, 470, 900, 380);
FlowLayout fl=new FlowLayout(FlowLayout.CENTER);
setLayout(fl);

JTable jt;
Vector vNomColonne=new Vector();
Vector ligne;
Vector vtableau=new Vector();

for(int z = 0; z <14; z++){
vNomColonne.addElement(nom[z]);

} //// ici c'est l'affichage de la 1ère ligne qui représente des noms


for(int i = 0; i < 14; i++){
ligne = new Vector();
ligne.addElement(nom[i]); /// la 1ère colonne qui continet des noms
for(int j = 0; j <14; j++){
ligne.addElement(matrice[i][j]) ; //// remplissage de la matrice
}
vtableau.addElement(ligne);
}

jt = new JTable(vtableau,vNomColonn);
JScrollPane myScrollPanel=new JScrollPane(jt);
myScrollPanel.setBounds(300, 400,900, 415);
add(myScrollPanel);

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 mai 2012 à 15:37
Ok, c'est sur une JTable.

table.getColumnModel().getColumn(i).sizeWidthToFit();


Tu peux faire une boucle pour le faire pour toutes les colonnes.
0
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
3 mai 2012 à 15:45
Bonsoir, merci pour votre réponse, mais le problème n'est pas là.
Ma matrice s'affiche correctement, mais le problème est que les cellules sont petites, et par conséquent les cellules qui contiennent des noms affichent juste les premières syllabes.
Est ce qu'il y a un moyen pour agrandir la taille d'une cellule.

Merci.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
3 mai 2012 à 16:02
Normalement, la taille des cellules s'ajuste à la taille de la JTable, c'est peut être tout bêtement ta table qui n'est pas assez grande. Tu utilises un FlowLayout qui utilises getPreferedSize() pour placer les éléments : essayes de le remplacer par un GridLayout(1, 1) et ca ira mieux je pense.

Si tu veux garder ton flowLayout, fais un setPreferedSize(new Dimenstion(200, 200)); par exemple
0
dounatt Messages postés 45 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 3 février 2014
3 mai 2012 à 21:39
Salut;
avec setPreferedSize ça change rien, mais avec GridLayout(1, 1) il me rend une erreur, j'ai pas su l'utiliser .
Je cherche une instruction à ajouter pour qu'elle me donne la main afin de modifier la taille de la matrice ou de ses cellules.
désolée pour le dérangement !!
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 mai 2012 à 08:18
Je ne comprend vraiment pas pourquoi le gridLayout te donne une erreur, il n'y a aucune raison : essayes avec un 1, 0 peut être
0
Rejoignez-nous