Bonjour,
J'ai une JFrame dans laquelle se trouvent un JComboBox et un JTable. Je veux faire en sorte que, quand l'utilisateur sélectionne un item de la JComboBox, le nom de cet item s'affiche dans mon JTable.
Pour mon tableau j'ai créé un modèle dans lequel j'ai ajouté la méthode setValueAt. Voici la classe complète :
Pour afficher la valeur de l'item sélectionné dans la JComboBox, je lui ajoute un ActionListener :
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 public class ModeleTable extends AbstractTableModel { private static final long serialVersionUID = 1L; Object donnees[][]; String titres[]; TableModel model; public ModeleTable(Object donnees[][], String titres[]) { this.donnees = donnees; this.titres = titres; } public int getColumnCount() {return titres.length;} public int getRowCount() {return donnees.length;} public String getColumnName(int col) {return titres[col];} public Object getValueAt(int row, int col) {return donnees[row][col];} public boolean isCellEditable(int row, int col) { return false;} public void setValueAt(Object value, int row, int col) { donnees[row][col] = value; fireTableCellUpdated(row,col); } }
Pour info, voilà mon tableau qui utilise le modèle que j'ai créé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class ItemAction2 implements ActionListener { public void actionPerformed(ActionEvent e) { ModeleTable.setValueAt(combo.getSelectedItem(), 0, 1); } }
Mon problème c'est qu'à l'exécution, j'ai une erreur au niveau de mon ActionListener, au niveau de la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Object[][] donnees = {{"",""}}; String[] titresColonnes = {"Titre1","Titre2"}; ModeleTable modele = new ModeleTable(donnees, titresColonnes); tableauRecapitulatif = new JTable(modele); tableauRecapitulatif.setPreferredScrollableViewportSize(new Dimension(640,50)); tableauRecapitulatif.addMouseListener(new Navigation(tableauRecapitulatif)); JScrollPane jsp = new JScrollPane(tableauRecapitulatif);Ci dessous l'erreur générée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ModeleTable.setValueAt(combo.getSelectedItem(), 0, 1);
Auriez vous une idée de comment résoudre ce problème ? Merci de votre aide
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 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at esgi.tdb.fenetres.FenetreDeuxParametres$ItemAction2.actionPerformed(FenetreDeuxParametres.java:140) at javax.swing.JComboBox.fireActionEvent(Unknown Source) at javax.swing.JComboBox.setSelectedItem(Unknown Source) at javax.swing.JComboBox.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Partager