Bojour,
je suis confronté à une erreur avec JTable, JComboBox.
J'ai crées un JTable basée sur une table operation (MYSQL).
Par défaut Netbeans n'utilise que des JTextField. Je veux mettre à la place d'un d'un JtextField un JComboxBox car certains éléments doivent être selectionnés et non saisis par l'utilisation (ces éléments proviennent des tables paramètres)
alors 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
comboBox = new javax.swing.JComboBox();
comboBox.setName("comboBox"); // NOI18N
org.jdesktop.swingbinding.JComboBoxBinding jComboBoxBinding1 = org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, structureList, comboBox);
bindingGroup.addBinding(jComboBoxBinding1);
// Code adding the component to the parent container - not shown here
comboBox.setRenderer(new DefaultListCellRenderer() {
           @Override
           public Component getListCellRendererComponent(
                   JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
               super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
               if (value instanceof Structure) {
                   Structure s = (Structure)value;
                   setText(s.getCode());
               }
               return this;
           }
       });
 
masterTable.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(comboBox));
masterScrollPane.setViewportView(masterTable);
A l'exécution j'ai l'erreur suivante quand je sélectionne un élément dans la JComboBox :
run:
[TopLink Info]: 2009.09.24 08:43:13.906--ServerSession(24622029)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2009.09.24 08:43:14.312--ServerSession(24622029)--file:/C:/workspace/Netbeans/Gestcom/build/classes/-gestcomPU login successful
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException
at java.lang.Class.cast(Class.java:2990)
at org.jdesktop.beansbinding.Binding.convertReverse(Binding.java:1321)
at org.jdesktop.beansbinding.Binding.getTargetValueForSource(Binding.java:909)
at org.jdesktop.beansbinding.Binding.saveUnmanaged(Binding.java:1268)
at org.jdesktop.swingbinding.JTableBinding$ColumnBinding.saveUnmanaged0(JTableBinding.java:654)
at org.jdesktop.swingbinding.JTableBinding$ColumnBinding.access$1800(JTableBinding.java:542)
at org.jdesktop.swingbinding.JTableBinding$BindingTableModel.setValueAt(JTableBinding.java:745)
at javax.swing.JTable.setValueAt(JTable.java:2719)
at javax.swing.JTable.editingStopped(JTable.java:4721)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:125)
at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:350)
at javax.swing.DefaultCellEditor$3.stopCellEditing(DefaultCellEditor.java:140)
at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:215)
at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultCellEditor.java:367)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:567)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:603)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:816)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:480)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
Merci pour votre aide