Est ce que quelqun sait comment faire pour afficher dans une JFrame un tableau à 2 dimensions?
Merci d'avance
Est ce que quelqun sait comment faire pour afficher dans une JFrame un tableau à 2 dimensions?
Merci d'avance
me répond à moi meme. Il faut utiliser une JTable ca a l'air de marcher
j'ai un probleme encore.
voila la fonction que je fais:
et quand j'execute mon code Eclipse me dit :
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 public void constrTableaux(ArrayList liste1, ArrayList liste2) { JInternalFrame fr = new JInternalFrame(); framee.add(fr); framee.repaint(); fr.setIconifiable(true); fr.setSize(700, 500);// dimension fr.setResizable(false);// nom redimensionnable fr.setClosable(true); WindowListener lo = new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }; Vector vec1 = new Vector(liste1); Vector vec2 = new Vector(liste2); JTable table = new JTable(vec1,vec2); fr.getContentPane().add(table); fr.setVisible(true); }
cette exeption est sur la ligne JTable table = new JTable(vec1,vec2);java.lang.ClassCastException
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)
at javax.swing.JTable.<init>(Unknown Source)
at ParseurFichier2.constrTableaux(ParseurFichier2.java:357)
at ParseurFichier2.analyseTout(ParseurFichier2.java:1855)
quelqun sait pourquoi?
Merci d'avance
lu,
regarde le constructeur JTable avec deux vector mais je pense que le premier vecteur que tu lui passes doit contenir autant de vecteur que de lignes dans ta table.
donc, je pense que tu devrais passer un vecteur contenant un seul vecteur dans ton cas.
merci, effectivement ca marche. Mais maintenant j'ai un nouveau probleme.
Je met la JTable dans un JScrollPane mais à l'afichage il n'y a ni scroll vertical ni scroll horizontal.
et au lieu d'avoir un scrollHorizontal toutes les cellules de la table sont ecrasé et donc illisible. Comment doit je faire pour faire apparaitre les scroll.
Voici le code
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 public void constrTableaux(ArrayList liste1, ArrayList liste2) { JInternalFrame fr = new JInternalFrame(); framee.add(fr); framee.repaint(); fr.setIconifiable(true); fr.setSize(700, 500);// dimension fr.setResizable(true);// nom redimensionnable fr.setClosable(true); WindowListener lo = new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }; Vector vec1 = new Vector(); for(int i = 0 ; i < liste1.size() ; i++) { Elements elem = (Elements)liste1.get(i); vec1.add(elem.nom); } Vector vec2 = new Vector(); for(int i = 0 ; i < liste2.size() ; i++) { Elements elem = (Elements)liste2.get(i); vec2.add(elem.nom); } Vector vec3 = new Vector(); vec3.add(vec1); vec3.add(vec2); Vector names = new Vector(); names.add("processus"); names.add("roles"); System.out.println("v1 = "+vec1); JTable table = new JTable(vec3,vec1); JScrollPane scroll = new JScrollPane(); scroll.setViewportView(table); fr.getContentPane().add(scroll); fr.setVisible(true); }
as tu le même résultat si au lieu de
tu faisJScrollPane scroll = new JScrollPane();
scroll.setViewportView(table);
fr.getContentPane().add(scroll);
fr.setVisible(true);
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 JScrollPane scroll = new JScrollPane(table); fr.getContentPane().add(scroll); fr.setVisible(true);
oui j'ai le meme resulat
tous le tableau est visualisable dans la fenetre.
Mais peut etre j'ai une idée . Est ce possible que comme j'ai mis directement la table dans la JFrame et non dans un JPanel cela pose la bleme??
ca ne change rien toujours le meme probleme
en fait le probleme ne vient pas des scrollbar en elles meme, mais du fait que les cellules du tableaux se redimenssionnent pour que toutes les cellules soit visible. Et ainsi les scrollbar besoin d'apparaitre..
Comment fait on alors pour que les cellules ne se redimenssionnent (pour que dans chaque cellule visible tous le texte soit visible)?
Salut,
Par défaut les JTable redimensionnent leurs colonnes pour ne pas avoir de scrollbar horizontal. Pour éviter cela il faut utiliser setAutoResizeMode() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
Par contre tu devrais avoir la scrollbar vertical !!!
a++
Partager