Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #38595

Re: Displaying a ragged array

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>

Show all headers | View raw


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


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