Je n'arrive à modifier la valeur d'un champs d'un JXTable.
this.totale est un float.
tabSurface.getJXTabProjet().setValueAt(this.totale,0, 3);
S'agit il d'un problème de mise à jour ?
Comment modifier les champs du tableau ?
Je n'arrive à modifier la valeur d'un champs d'un JXTable.
this.totale est un float.
tabSurface.getJXTabProjet().setValueAt(this.totale,0, 3);
S'agit il d'un problème de mise à jour ?
Comment modifier les champs du tableau ?
En ce qui concerne les valeurs d'un JTable (ou JXTable par héritage) tout doit être fait au niveau du model de ta JTable, et non au niveau de la table elle même.
Donc procèdes de la manière suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tabSurface.getJXTabProjet().getModel().setValueAt(this.totale,0, 3);
J'ai rajouté le getModel() mais ca ne change rien !
La valeur this.totale n'apparait toujours pas dans le tableau.
As tu redéfinis ton TableModel ? Si oui, as-tu bien implémenté la méthode setValueAt ?
Ta JTable est-elle éditable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 tabSurface = new TableSurface(); float SAU = this.totale+this.autre+this.disposition+this.propriete+this.metayage+this.fermage; tabSurface.getJXTabCols().getModel().setValueAt(this.totale,0, 1); tabSurface.getJXTabCols().getModel().setValueAt(SAU, 1, 1); tabSurface.getJXTabCols().getModel().setValueAt(String.valueOf(this.propriete),2, 1); tabSurface.getJXTabCols().getModel().setValueAt(this.fermage,3, 1); tabSurface.getJXTabCols().getModel().setValueAt(this.metayage,4, 1); tabSurface.getJXTabCols().getModel().setValueAt(this.disposition,5, 1); tabSurface.getJXTabCols().getModel().setValueAt(this.autre,6, 1);
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 public JXTable getJXTabCols() { if (jXTabCols == null) { DefaultTableModel tableModel = new DefaultTableModel(dataColonnes, nomColonnes); jXTabCols = new JXTable(tableModel); ColumnHeaderRenderer colonneHeaderRenderer = (ColumnHeaderRenderer) jXTabCols.getTableHeader().getDefaultRenderer(); colonneHeaderRenderer.setHorizontalAlignment(SwingConstants.CENTER); jXTabCols.setPreferredSize(new Dimension(500,500)); jXTabCols.setHorizontalScrollEnabled(false); jXTabCols.setColumnControlVisible(false); jXTabCols.setSortable(false); jXTabCols.setDragEnabled(false); jXTabCols.setGridColor(Color.LIGHT_GRAY); jXTabCols.setHighlighters(new HighlighterPipeline(new Highlighter[] {AlternateRowHighlighter.linePrinter})); jXTabCols.getTableHeader().setReorderingAllowed(false); } return jXTabCols; }
Ce code fonctionne...
élague ton code afin d'obtenir le code le plus petit possible avec le bug... Il te sera plus facile de le corriger
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
55 public class Main extends JFrame { private JXTable jXTabCols; /** Creates a new instance of Main */ public Main() { getContentPane().add(getJXTabCols()); getJXTabCols().getModel().setValueAt(3.,0, 1); getJXTabCols().getModel().setValueAt(2., 1, 1); getJXTabCols().getModel().setValueAt(1.,2, 1); getJXTabCols().getModel().setValueAt(4.,3, 1); getJXTabCols().getModel().setValueAt(6.,4, 1); getJXTabCols().getModel().setValueAt(5.,5, 1); getJXTabCols().getModel().setValueAt(2.2,6, 1); pack(); setLocationRelativeTo(null); setVisible(true); } /** * @param args the command line arguments */ public static void main(String[] args) { new Main(); } public JXTable getJXTabCols() { if (jXTabCols == null) { String[] nomColonnes = new String[]{"1","2","3","4","5","6", "7"}; Object[][] dataColonnes = new Object[7][]; for (int i = 0; i < 7; i++){ dataColonnes[i] = new Object[]{1,2,3,4,5,6,7}; } DefaultTableModel tableModel = new DefaultTableModel(dataColonnes, nomColonnes); jXTabCols = new JXTable(tableModel); ColumnHeaderRenderer colonneHeaderRenderer = (ColumnHeaderRenderer) jXTabCols.getTableHeader().getDefaultRenderer(); colonneHeaderRenderer.setHorizontalAlignment(SwingConstants.CENTER); jXTabCols.setPreferredSize(new Dimension(500,500)); jXTabCols.setHorizontalScrollEnabled(false); jXTabCols.setColumnControlVisible(false); jXTabCols.setSortable(false); jXTabCols.setDragEnabled(false); jXTabCols.setGridColor(Color.LIGHT_GRAY); //jXTabCols.setHighlighters(new HighlighterPipeline(new Highlighter[] {AlternateRowHighlighter.linePrinter})); jXTabCols.getTableHeader().setReorderingAllowed(false); } return jXTabCols; } }![]()
C'est bon ca marche !
Merci à Claythest et sinok !
![]()
Partager