Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #38595
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Displaying a ragged array |
| Date | 2018-09-17 10:17 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <pnod1l$mos$1@dont-email.me> (permalink) |
| References | <pnmkqh$7dp$1@news.albasani.net> |
On 9/16/2018 6:17 PM, Martin Gregorie wrote:
> I'm in the process of creating a desktop application to display and edit
> data that's best treated as a ragged array of Strings: it is quite
> unlikely that all rows in the array will be the same length.
>
> I've built and debugged a Datastore class to hold it as an ArrayList of
> ArrayList<String> - the ArrayList<String> being in a wrapper class
> representing a row of fields. The DataStore allows rows, columns and
> individual fields to be inserted, deleted, and the fields to be modified.
>
> Datastore extends AbstractTableModel because I was initially intending to
> use a JTable to display and manipulate its contents, but now its
> successfully manipulating the ragged array I'm having twinges of doubt
> about how whether a JTable can is the best way of displaying it and
> allowing it to be viewed and modified, i.e. can a JTable deal successfully
> with the missing elements at the end of rows in a ragged array?
When queried for an "absent" cell, your TableModel could return
something -- null, "", whatever -- instead of throwing an exception.
The JTable could then display the "absent" value in whatever way you
pleased. Implementing your own TableCellRenderer would probably be
helpful.
Whether the tabular display works well would seem to depend on
"how ragged" the grid becomes. Your TableModel must advertise the
number of rows and columns in the grid, which probably means a lot of
work whenever the maximum row length changes. If you've got twenty
rows of four columns and one of a hundred, things may get awkward.
> Would I be better off with a custom built structure containing, say, an
> array of JButtons to display fields in the ragged array and that can be
> clicked to add a field, edit or delete it?
It appears the items in a single row are related somehow; are
those in a single column also related? If so, a tabular display might
make the "vertical" relationships more apparent, and perhaps more
useful (you might sort on Column 3, for example).
If there's no "vertical" relationship worth preserving, a table
of one column where each cell displays multiple items (maybe as a
bunch of JButtons, maybe as a JList, maybe as ...?) might work.
Again, wild discrepancies in the row lengths could be unpleasant.
> I'll be very interested to hear how you've handled, or would handle, this
> display problem.
Have you considered using a JTree?
--
esosman@comcast-dot-net.invalid
Eight hundred fifty-six days to go.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-16 22:17 +0000
Re: Displaying a ragged array Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2018-09-17 16:00 +0200
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-17 19:32 +0000
Re: Displaying a ragged array Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2018-09-17 23:29 +0200
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-17 23:43 +0000
Re: Displaying a ragged array Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2018-09-19 18:12 +0200
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-19 17:49 +0000
Re: Displaying a ragged array Eric Sosman <esosman@comcast-dot-net.invalid> - 2018-09-19 14:25 -0400
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-19 19:29 +0000
Re: Displaying a ragged array Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2018-09-20 15:30 +0200
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-20 15:06 +0000
Re: Displaying a ragged array Eric Douglas <e.d.programmer@gmail.com> - 2018-09-24 08:11 -0700
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-24 17:52 +0000
Re: Displaying a ragged array Eric Douglas <e.d.programmer@gmail.com> - 2018-09-24 12:01 -0700
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-10-23 21:00 +0000
Re: Displaying a ragged array Eric Sosman <esosman@comcast-dot-net.invalid> - 2018-09-17 10:17 -0400
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-17 19:46 +0000
Re: Displaying a ragged array Martin Gregorie <martin@mydomain.invalid> - 2018-09-17 23:53 +0000
csiph-web