JTable.setAutoCreateColumnsFromModel(false) is a performance
feature to prevent the JTable doing unnecessary work when you're
going to supply your own column model anyway.

TableColumn.setModelIndex() has nothing to do with this discussion.
As Evan already pointed out the ordering of a TableColumnModel does
not have to match the TableModel.  The value set here determines
which column in the TableModel a particular column in a table relates
to.  Your issue concerned the relationship between getColumnCount
and getValueAt in TableModel.  The fact that another data structure
allows random access into the columns of a TableModel bears no
relevance to the internal consistency of TableModel.

You say you guess you'll have to ask Philip.  If you mean Philip
Milne, and you have access to him, why don't you just do that and
ask him to post an answer and enlighten us all.

Dave Wathen
Canzonet Limited
Phone: +44 (0)20 8660 5171
Mobile: +44 (0)7968 167934
Fax: +44 (0)870 051 7664
http://www.canzonet.com
mailto:[EMAIL PROTECTED]

-----Original Message-----
From: Ralph Kar [mailto:[EMAIL PROTECTED]]
Sent: 11 September 2002 13:23
To: Dave Wathen
Cc: [EMAIL PROTECTED]
Subject: RE: Problems with row filtering in JTable


Well, arguing this way I could also say the opposite. When the column
index is supposed to be 0..n-1 (considering your argument), then why do
the following methods exist?

   JTable.setAutoCreateColumnsFromModel(false);
   TableColumn.setModelIndex();

Ralph

-----------------------------------------------------
 Ralph Kar               |
 Software Developer      | mailto:[EMAIL PROTECTED]
 RTS Realtime Systems AG | http://www.rtsgroup.net
-----------------------------------------------------

On Wed, 11 Sep 2002, Dave Wathen wrote:

> It's not documented as such but I suspect that 0..n-1 was the intention.
> Looking at the source of JTable the method createDefaultColumnsFromModel
> relies on this being so.
>
> Dave Wathen
> Canzonet Limited
> Phone: +44 (0)20 8660 5171
> Mobile: +44 (0)7968 167934
> Fax: +44 (0)870 051 7664
> http://www.canzonet.com
> mailto:[EMAIL PROTECTED]
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On
> Behalf Of Ralph Kar
> Sent: 11 September 2002 08:52
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: Problems with row filtering in JTable
>
>
> Hi Evan,
>
> I am afraid, I have to tell you that the model index of the columns does
> not necessarly have to be from 0..n-1. The view index of the columns is
> 0..n-1, but the model index can be anything.
>
> For example, we use the model index to reference field ids that represent
> the data displayed in the column. The field id can be any positive
> integer.
>
> The implementation of the DefaultTableModel uses 0..n-1 as column index,
> but it does not have to be that way. I am also not aware that the
> specification of the TableModel interface requires the index to be that
> way. I guess I have to ask Philip about it.
>
> Ralph
>
> -----------------------------------------------------
>  Ralph Kar               |
>  Software Developer      | mailto:[EMAIL PROTECTED]
>  RTS Realtime Systems AG | http://www.rtsgroup.net
> -----------------------------------------------------
>
>
> On Tue, 10 Sep 2002, [EMAIL PROTECTED] wrote:
>
> > Ralph Kar wrote:
> > > Hi all,
> > [...]
> > > The problem arises when I want to
> > > implement isRowVisible() (which itself needs to be called by
> > > TableModel.getRowCount()). This method needs to go over all columns
that
> > > have filters attached to them, get their cell values and apply the
> filter.
> > > This means I need to call TableModel.getValueAt() from that method.
> > > TableModel.getValueAt() requires the columnIndex as parameter. I am
> unable
> > > to determine this parameter. TableModel.getColumnCount() only returns
> the
> > > number of columns but not the actual indices. Those do not necessarily
> be
> > > sequential from 0..n.
> >
> > Ralph,
> >
> > If a TableModel has a columnCount of n, the indices are always 0..n-1.
> >
> > The headings displayed in the table may be something totally different.
> That
> > information is in the columnIdentifiers in the TableColumnModel.
> >
> > Also, the JTable itself (the view) keeps a separate set of indices
because
> the
> > user is allowed to move the columns around.  It provides two methods for
> > converting back and forth between view indices and model indices:
> >
> > public int convertColumnIndexToModel(int viewColumnIndex)
> > - Maps the index of the column in the view at viewColumnIndex to the
index
> of
> > the column in the table model.
> > public int convertColumnIndexToView(int modelColumnIndex)
> > - Maps the index of the column in the table model at modelColumnIndex to
> the
> > index of the column in the view.
> >
> > In the common case, the view indices and model indices are the same.
> >
> > Evan McLain
> > junquemale -at- yahoo.com
> >
> >
> >
> >
>
> _______________________________________________
> Advanced-swing mailing list
> [EMAIL PROTECTED]
> http://eos.dk/mailman/listinfo/advanced-swing
>
>


_______________________________________________
Advanced-swing mailing list
[EMAIL PROTECTED]
http://eos.dk/mailman/listinfo/advanced-swing

Reply via email to