my dog learned polymorphism*
The moose likes Swing / AWT / SWT and the fly likes DefaultTableModel and Multiple Selections. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "DefaultTableModel and Multiple Selections." Watch "DefaultTableModel and Multiple Selections." New topic
Author

DefaultTableModel and Multiple Selections.

Gerald Meazell
Greenhorn

Joined: Jan 04, 2010
Posts: 3
OK, I'm stumped.

I have a JTable. In the model, I have two columns. The first is an object and the table uses it's toString() method to determine what it displays. The second is another object and that works similarly.

When the user presses a button, I want to retrieve the object in the first column and make some changes to it. What I change depends on whether one row is selected or multiple.

When the table has only a single row selected, this works perfectly. However, if multiple rows are selected, calling getValueAt(n,0) returns the String from the object's toString() rather than the object itself. Can somebody explain this to me? My code is below. I am using NetBeans 6.8 on 64-bit Java 6 on a Mac.

When one row selected:



When multiple rows are selected:



In the first case, t is an instance of Territory. In the second, t is an instance of String and a ClassCastException is thrown.


--
Gerald Meazell
No Magic, Inc.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18988
    
    8

You're going to have to look at the code of your table model to see why it's doing what it's doing. Just showing us code which calls methods of the table model isn't helpful.
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19785
    
  20

Have you by any chance edited some of the columns? If your model says the column class is Object.class and you haven't defined a table cell renderer yourself for that column then the default is used, and that will simply put Strings into the model.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Gerald Meazell
Greenhorn

Joined: Jan 04, 2010
Posts: 3
Paul Clapham wrote:You're going to have to look at the code of your table model to see why it's doing what it's doing. Just showing us code which calls methods of the table model isn't helpful.


I am using the DefaultTableModel class from the JDK.
Gerald Meazell
Greenhorn

Joined: Jan 04, 2010
Posts: 3
Rob Prime wrote:Have you by any chance edited some of the columns? If your model says the column class is Object.class and you haven't defined a table cell renderer yourself for that column then the default is used, and that will simply put Strings into the model.


Interesting idea, but why would it behave one way when it's a single select and a completely different way when multiple?
pete stein
Bartender

Joined: Feb 23, 2007
Posts: 1561
Gerald Meazell wrote:
Paul Clapham wrote:You're going to have to look at the code of your table model to see why it's doing what it's doing. Just showing us code which calls methods of the table model isn't helpful.


I am using the DefaultTableModel class from the JDK.


It works fine for me. My SSCCE:



I suggest that if you're still having a problem, you produce an SSCCE so that we can test your code and isolate your problem. Else, we'll probably not be able to help you.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: DefaultTableModel and Multiple Selections.