File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Swing / AWT / SWT and the fly likes Jtable CellEditor Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Jtable CellEditor " Watch "Jtable CellEditor " New topic
Author

Jtable CellEditor

Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
hi i have a table t, i fill the table with database query ( 5 column )

textfieldcelleditor = new JTextField();
celleditor = new DefaultCellEditor(textfieldcelleditor);
t.getColumnModel().getColumn(1).setCellEditor(celleditor);

i should have the first column editable if i understood how it works, why it doesnt?


this is the table, but then i fill with a database query
Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2091
    
    7
Editing is controlled by the isCellEditable() method of the TableModel or the JTable. By default when using a DefaultTableModel all cells are editable so I don't know what your problem is.

Post your SSCCE showing the problem.
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
my classes are really big to get easily a SSCCE cause i used netbeans to make dialogs

on the upper post i posted the code related to table.
is it possibile to find the error there??

i think my problem is in CellEditor, dunnow good how to use it

pete stein
Bartender

Joined: Feb 23, 2007
Posts: 1561
Antony Amicone wrote:my classes are really big to get easily a SSCCE cause i used netbeans to make dialogs

Which is hampering your ability to learn Swing. I strongly urge you to do your Swing coding by hand and to study the Swing tutorials, and you won't be having this and your other problems (i.e., in your Dialogs thread).

Just my 2 cents worth.
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
oh i know, i usually write dialog by hand, but this time i wanted to try
can you help me with that?
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125


can be here my problem? i tried to change rs. not just to readonly and not insensitive, but is the same
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18126
    
    8

If your table cell is not editable, and you don't know why, the problem is in how you configured the table. Database code could
have absolutely nothing to do with that.
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
Paul Clapham wrote:If your table cell is not editable, and you don't know why, the problem is in how you configured the table. Database code could
have absolutely nothing to do with that.

and what is wrong in the table??? i put upside the code but i think is all ok
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
helpppppppp
Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2091
    
    7
You've been given plenty of help, but refuse to post a SSCCE so we can't give you anymore help.
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
it takes a lot but hope all is ok now for you to check, heeeeeeeeeeeeeelp me




Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
and this is the main class

Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18126
    
    8

Unfortunately that code requires us to be running Netbeans and it requires us to have a MS Access database of a
certain form at a certain place in the root directory of our C drive on our computer which is required to be running
Windows.

There's a lot more stuff in that code which isn't relevant to your question, too.

So if you remove the database access and replace it by hard-coded data, and get rid of all of the Netbeans-related
classes (that's org.desktop.whatever), that would be a good start. All you need to study this problem is a simple class
which has a JTable and nothing else.
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
Paul Clapham wrote:Unfortunately that code requires us to be running Netbeans and it requires us to have a MS Access database of a
certain form at a certain place in the root directory of our C drive on our computer which is required to be running
Windows.

There's a lot more stuff in that code which isn't relevant to your question, too.

So if you remove the database access and replace it by hard-coded data, and get rid of all of the Netbeans-related
classes (that's org.desktop.whatever), that would be a good start. All you need to study this problem is a simple class
which has a JTable and nothing else.

cant you help me with this code? dont consider the db if is not needed, or i can attach the file
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125

i changed the database value with this, and the table allow me editing so the problem is probably in the database... WHERE?!?!?!?!

I changed my Datab class extension, instead of an AbstractTableModel i put DefaultTableModel... and works
is there another way?
Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2091
    
    7
The database has nothing to do with editing. All the database does is provide data.

Editing is controlled by the isCellEditable() method of the TableModel. When using a DefaultTableModel this method allows all columns to be edited. When extending the AbstractTableModel the default is to not allow editing. So if you want editing you need to implement the method in your custom model.
Antony Amicone
Ranch Hand

Joined: Mar 11, 2006
Posts: 125
Rob Camick wrote:The database has nothing to do with editing. All the database does is provide data.

Editing is controlled by the isCellEditable() method of the TableModel. When using a DefaultTableModel this method allows all columns to be edited. When extending the AbstractTableModel the default is to not allow editing. So if you want editing you need to implement the method in your custom model.


ok so i just change
public class Datab extends AbstractTableModel {
in
public class Datab extends DefaultTableModel {

and it let me edit, but when i click on one cell it show this error

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:648)
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.stopCellEditing(DefaultCellEditor.java:215)
at javax.swing.JTable$GenericEditor.stopCellEditing(JTable.java:5475)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:986)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
at java.awt.Component.processMouseEvent(Component.java:6260)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
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:4235)
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)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)



then when i edit a cell, it continue to be on "edit" till i press ESC, why?

which method should i care bout?
Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2091
    
    7
You haven't posted a proper SSCCE so I don't know the answer and will not bother to answer again until I see a SSCCE.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Jtable CellEditor
 
Similar Threads
error sql after removing all jdbc connection
JTable numeric validation
NullPtrException when reading JTextField
JTable Table Cell Renderer Problem
problem clicking jbuttons in jtable