Bonjour,
Je souhaiterais afficher n Jtables dans n onglets.
chaque onglet aura son tableau et chaque tableau est indépendant !!
Merci.
Bonjour,
Je souhaiterais afficher n Jtables dans n onglets.
chaque onglet aura son tableau et chaque tableau est indépendant !!
Merci.
Bonjour,
Va voir les tutos du site sur les JTables ou les nombreux posts à ce sujet.
Tout ceci est accessible via une petite recherche que je te laisse faire.
De rien.
Et les JTabbedPane à priori aussi, pour les onglets.
C'est Android, PAS Androïd, ou Androïde didiou !
Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.
Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.
N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android
voici ce que j'ai réalisé mais le problème c'est que j'ai le meme tableau dans chaque onglet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 JTabbedpane tab=new JTabbedPane(); for(int i=0;i<5;i++) { JTable matable=new JTable(); JPanel panneau =new JPanel(); panneau.add(matable); tab.addTab("",panneau); } add(tab);
Ça parait logique non?
Tu as 5 JTable identiques (vide) sur 5 Panel identiques...
En quoi les voudrais tu différentes, si ce n'est les données dedans?
car si je modifie les valeurs dans un onglet, cela se répercute sur les autres onglets
comment créer n JTables différentes dans le sens instances différentes
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 JTable table_1 = new JTable(); JTable table_2 = new JTable(); [...] JTable table_n = new JTable();
Si tu fournis pas plus de code, on peut pas t'aider!
il n'y a pas de possibilité de le faire dans une boucle puisque je saisit la valeur de n qui se trouve être le nombre de tables?
Si, mais il faut stocker ces JTable dans une List ou un tableau dans ce cas là.
Java ne permet pas de créer de noms de variables dynamiquement vu que c'est un langage compilé et non interprété.
En fait il est compilé deux fois (cf la notion de compilateur JIT autrement appelé Compilation à la volée ). La JVM n'est pas vraiment un interpréteur au sens du terme.
De toute façon la première compilation empêche l'emploi de noms de variables dynamiques
Voici ce que j'ai réalisé mais toujours le meme problème:
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 List<JTable> ensembleTable=new ArrayList<JTable>; for(int i =0;i <nombre; i++) { JTable matable=new JTable(valeur,colonne); JPanel panneau =new JPanel(); ensembleTable.add(matable); panneau.add(ensembleTable.get(i)); tab.addTab("",panneau); } add(tab);
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Tu crées un container TabbedPane et dans chaque TabbedPane, tu ajoutes un Panel qui va containir un JTable.
voici un exemple simple de création de JTable: http://sakoba.byethost13.com/2010/11...ng-with-table/
Voici ce que j'ai réalisé mais cela ne fonctionne 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
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 public class Client extends JPanel implements ActionListener { JLabel montexte1 = new JLabel(); JLabel montexte2 = new JLabel(); JTextField champ1 = new JTextField(), champ2 = new JTextField(); JTable matable; JCheckBox premier_choix, deuxieme_choix, troisieme_choix; JPanel panneau1 = new JPanel(), panneau2 = new JPanel(), panneau3 = new JPanel(), panneau4 = new JPanel(); static int nb_lignes; static int nb_colonnes; static int dimension; JLabel mavaleur = new JLabel(); JButton valider = new JButton(); JTabbedPane tabbedpane = new JTabbedPane(); public Client2() { } public Client2(int nb_lignes, int nb_colonnes, int dimension) { System.out.println("" + nb_lignes); this.nb_lignes = nb_lignes; this.nb_colonnes = nb_colonnes; this.dimension = dimension; setLayout(new BorderLayout()); List<JTable> ensembleTable = new ArrayList<JTable>(); Object[][] valeur=new Object[][] (); String[] column_num = new String[nb_colonnes]; for (int i = 1; i <= dimension; i++) { matable = new JTable(valeur, column_num); ensembleTable.add(matable); JPanel paneldimension = new JPanel(); paneldimension.setLayout(new BorderLayout()); paneldimension.add(ensembleTable.get(i - 1), BorderLayout.NORTH); tabbedpane.addTab("dimension n°" + i, paneldimension); } add(tabbedpane, BorderLayout.NORTH); } public void main(String[] args) { System.out.println("Main"); } }
Le comportement est normal.
Voici le source du constructeur de JTable que tu utilises :
Les données passées en paramètres ne sont pas copiées, mais utilisées directement. Donc une modification sur les données du tableau transmis en paramètre va modifier toutes les tables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public JTable(final Object[][] rowData, final Object[] columnNames) { this(new AbstractTableModel() { public String getColumnName(int column) { return columnNames[column].toString(); } public int getRowCount() { return rowData.length; } public int getColumnCount() { return columnNames.length; } public Object getValueAt(int row, int col) { return rowData[row][col]; } public boolean isCellEditable(int row, int column) { return true; } public void setValueAt(Object value, int row, int col) { rowData[row][col] = value; fireTableCellUpdated(row, col); } }); }
Une solution possible : tu transmets un clone du tableau de données au lieu de l'original.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Voici ce que j'ai fait mais toujours le même problème:
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 matable = new JTable(valeur.clone(), column_num); for (int i = 1; i <= dimension; i++) { ensembleValeurs.add(valeur); ensembleTable.add(matable); panel.add(ensembleTable.get(i - 1)); paneldimension.add(panel); tabbedpane.addTab("dimension n°" + i,paneldimension.get(i - 1)); ensembletabbedpane.add(tabbedpane); } add(tabbedpane);
Partager