Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #23535
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born |
| Date | 2013-04-20 14:14 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <kkulp2$v0f$1@dont-email.me> (permalink) |
| References | <300a4c2f-daba-4007-8551-3b1d0f263d27@googlegroups.com> <kkubde$jhq$1@dont-email.me> <98b6f34a-4162-472a-a740-91e86c1b3217@googlegroups.com> |
On 4/20/2013 12:02 PM, clusa@aol.com wrote:
>> On Saturday, April 20, 2013 11:17:52 AM UTC-4, Eric Sosman wrote:
>> JTable should be straightforward. You'd extend AbstractTableModel to handle
>> the "sliding," calling fireTableDataChanged() to update the display.
>> Conveniences like scrolling would come for free (almost), and the JTable's
>> display might well be more efficient than managing 4500 JLabels. No, I don't
>> have example code. -- Eric Sosman esosman@comcast-dot-net.invalid
>
> I would also be able to eloquently color specific cells.
You can be as eloquent as you like with a TableCellRenderer,
most likely an extension of DefaultTableCellRenderer. This time,
I've got some example code (not eloquent, and not colorized, but
it should demonstrate the approach):
/**
* A {@code TableCellRenderer} that centers displayed text.
*/
class CenteredRenderer extends DefaultTableCellRenderer {
private static CenteredRenderer instance;
static CenteredRenderer instance() {
if (instance == null) {
instance = new CenteredRenderer();
}
return instance;
}
private CenteredRenderer() {
assert SwingUtilities.isEventDispatchThread();
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean select, boolean focus, int row, int col) {
assert SwingUtilities.isEventDispatchThread();
Component comp = super.getTableCellRendererComponent(table,
value, select, focus, row, col);
if (comp instanceof JLabel) {
((JLabel) comp).setHorizontalAlignment(SwingConstants.CENTER);
}
return comp;
}
}
I use it this way, in the constructor of a class extending
JTable:
TableColumnModel colmod = getColumnModel();
for (int c = 0; c < COLUMNS; ++c) {
TableColumn col = colmod.getColumn(c);
if ( /* I want this column centered ... */ ) {
col.setCellRenderer(CenteredRenderer.instance());
}
}
--
Eric Sosman
esosman@comcast-dot-net.invalid
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread
5th col dies, cols 6 thru 15 move 1 col left, 15th col is born clusardi2k@aol.com - 2013-04-19 16:54 -0700
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born Knute Johnson <nospam@knutejohnson.com> - 2013-04-19 17:03 -0700
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born "clusa@aol.com" <clusardi2k@aol.com> - 2013-04-19 17:29 -0700
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born "clusa@aol.com" <clusardi2k@aol.com> - 2013-04-19 22:29 -0700
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born Knute Johnson <nospam@knutejohnson.com> - 2013-04-20 09:02 -0700
[OT] Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born Manuel Collado <m.collado@domain.invalid> - 2013-04-20 16:44 +0200
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-04-20 11:17 -0400
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born "clusa@aol.com" <clusardi2k@aol.com> - 2013-04-20 09:02 -0700
Re: 5th col dies, cols 6 thru 15 move 1 col left, 15th col is born Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-04-20 14:14 -0400
csiph-web