Support use of mutable numbers in editable JTable models
--------------------------------------------------------

                 Key: LANG-522
                 URL: https://issues.apache.org/jira/browse/LANG-522
             Project: Commons Lang
          Issue Type: Improvement
    Affects Versions: 2.4
            Reporter: Michael Rudolf
             Fix For: 2.x


In order for mutable numbers to be used in editable JTable models, they need to 
have a constructor accepting a string. The following stack trace was the result 
of double-clicking on a table cell displaying a MutableDouble instance:

java.lang.NoSuchMethodException: 
org.apache.commons.lang.mutable.MutableDouble.<init>(java.lang.String)
 at java.lang.Class.getConstructor0(Class.java:2678)
 at java.lang.Class.getConstructor(Class.java:1629)
 at 
org.jdesktop.swingx.table.NumberEditorExt.getTableCellEditorComponent(NumberEditorExt.java:107)
Caused: java.lang.IllegalStateException: Number subclass must have a 
constructor which takes a string
 at 
org.jdesktop.swingx.table.NumberEditorExt.getTableCellEditorComponent(NumberEditorExt.java:110)
 at javax.swing.JTable.prepareEditor(JTable.java:3983)
 at org.jdesktop.swingx.JXTable.prepareEditor(JXTable.java:3458)
 at javax.swing.JTable.editCellAt(JTable.java:2688)
 at org.jdesktop.swingx.JXTable.editCellAt(JXTable.java:3852)
 at 
javax.swing.plaf.basic.BasicTableUI$Handler.adjustFocusAndSelection(BasicTableUI.java:955)
 at 
javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:922)
 at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
 at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:221)
 at java.awt.Component.processMouseEvent(Component.java:5514)
 at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
 at java.awt.Component.processEvent(Component.java:5282)
 at java.awt.Container.processEvent(Container.java:1966)
 at java.awt.Component.dispatchEventImpl(Component.java:3984)
 at java.awt.Container.dispatchEventImpl(Container.java:2024)
 at java.awt.Component.dispatchEvent(Component.java:3819)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3889)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
 at java.awt.Container.dispatchEventImpl(Container.java:2010)
 at java.awt.Window.dispatchEventImpl(Window.java:1791)
 at java.awt.Component.dispatchEvent(Component.java:3819)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

The editor had been installed in this way:

JTable table = ...;
table.setDefaultEditor(Number.class, table.getDefaultEditor(Double.class));

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to