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 ?
Version imprimable
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:
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 ?
1ere question : Non !
2eme question : Oui !
Alors montre du code !
Code:
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:
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:
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 !
:king: