On Thu, 16 Dec 2021 10:28:58 GMT, Tejesh R <[email protected]> wrote:
>> Yeah, if u refer this example page >> [https://bip.weizmann.ac.il/course/prog2/tutorial/uiswing/components/example-1dot4/ColorEditor.java], >> the interface is used for a cell in a table which has a button in turn >> invokes "JColorChooser" class. Which means the interface is used to store a >> particular value while the cell in is editor mode......? > > After going on through the example, what I felt is "Adds to CellEditor the > extensions necessary to configure an editor in a tree" is little generic > description than the updated PR Definition. > > The object that implements the interface is not necessarily the editor for > > values. DefaultCellEditor is the perfect example: it's not an editor > > itself, it's not even a component, all it does is configures a delegate, a > > JComponent, which serves as the editor. > > My thoughts about this. The object which implements the interface is always > the "editor", even if it is not a component. I guess you are mixing it with > the other classes like "JEditorPane/JTextField/etc". No, I don't mix them. It's called CellEditor, however, it's actually CellEditor-provider: the implementation of the interface *provides a component* which is used as the editor for cell values. Or do I miss anything? What I mean is that this editor object defines the implementation of how an instance of `JTable` acquires an editor component. In that sense it's an editor. Probably, this part of the discussion is off-topic as we're discussing the terms. Let's discuss the spec. > The current spec: > > > This interface defines the method any object that would like to be > > an editor of values for components such as `JListBox`, > > `JComboBox`, `JTree`, or `JTable` > > needs to implement. > > This means that the application may have some values/data stored in the > JComboBox/JTree/JTable and the application may create a cell editor by > implementing the TableCellEditor. That editor then could be used as a cell > editor in the "main" JTable. Why does the interface reference this? The application can store and display data in any component. Moreover the statement in the Javadoc is wrong: This interface defines the method that can create an editor for `JTable` only. The returned component is of type `Component`, therefore it can be any component. > So the next statement in the description of this PR is not completely right: > > > "CellTableEditor Interface doesn't support JComboBox and JTree components" > > The JComboBox and other classes do not have to implement/support that > interface. No, they don't. At the same time `TableCellEditor` interface can't be used to return a cell editor for `JComboBox` and for `JTree` components. These components use `ComboBoxEditor` and `TreeCellEditor` correspondingly. ------------- PR: https://git.openjdk.java.net/jdk/pull/6608
