File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes Adding 2-d ArrayList to JTable Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Adding 2-d ArrayList to JTable" Watch "Adding 2-d ArrayList to JTable" New topic

Adding 2-d ArrayList to JTable

Liana Norpunova

Joined: Aug 24, 2010
Posts: 23

I've spent 4 hours trying to read the data from file to ArrayList and then to JTable, but still cannot solve one problem.

I have the following class UserDataRow, where the data about a user is described:

I'm using the following code to read the data from file:

Now I want just to put this 2d array "listofusers" into my JTable, but I cannot... The above code does't work.

The error message is:

So, where could be my error?
Rob Spoor

Joined: Oct 27, 2005
Posts: 20269

Collection.toArray() returns an Object[]. Even though its elements may be Object[] themselves, the array is still an Object[], not an Object[][]. Try the following:
Note that you no longer need to cast. Check out the Javadoc of Collection.toArray(T[]) for more information.

How To Ask Questions How To Answer Questions
Greg Charles

Joined: Oct 01, 2001
Posts: 2967

Yeah, that's a bit hard to read. It's saying you are casting a two-dimensional array to a one-dimensional one. Like Object[][] to Object[]. I didn't read through all your code, but try to look for something like that.

ETA: Oops, beaten by 20 seconds and a better answer!
Liana Norpunova

Joined: Aug 24, 2010
Posts: 23

I've tried Object d1[][] = filetree.Form.listofusers.toArray(new Object[0][]); Now I get only one error message:

Error: 6

What does it mean?
Wouter Oet
Saloon Keeper

Joined: Oct 25, 2008
Posts: 2700

Are you aware that this:
Does the same as:
I don't know what is in the file but are you sure you want to do this:
and not this:
It just looks weird to me.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler
Please correct my English.
Liana Norpunova

Joined: Aug 24, 2010
Posts: 23
Thanks! Now I use one-dimensional array. There are no errors in the code. But the table is empty. Any advises pliz?

pete stein

Joined: Feb 23, 2007
Posts: 1561
While you have a one-dimensional Object[] array present, each item in this array is a UserDataRow object, and you are adding these items as rows to the table model. I don't know how the DefaultTableModel will be able to interpret that since it only knows how to handle Object arrays or Vectors as rows. One solution: create an Object[] array within the for loop to use as a row and add it to the model, or 2: create and use an AbstractTableModel that knows how to handle UserDataRow objects (this way is harder).

To clarify, this:

adds an Object array as a row to the table model, but this Object array has one and only one element, a UserDataRow object. Better would be to do something like so (semi-pseudo-code):

I agree. Here's the link:
subject: Adding 2-d ArrayList to JTable
It's not a secret anymore!