Dennis Ponos wrote:
Thank you for replying to my question, Frank.
First, let me make sure I understand you correctly. Are you saying that
you DON't use the <tableheader> tag? That's what it sounds like, but I
want to make sure.
That is correct. Up to your question, I did not know the tag existed at
all ;)
Second, my tablemodel class is extending DefaultTableModel, so it was
returning the right values in getColumnCount() and getColumnName(). I
stepped through the code in debug mode to make sure. Even so, I
implemented the methods in my tablemodel class so I would have an
example like yours.
It took me a while but you need to put the table in a scrollpane:
<?xml version="1.0" encoding="UTF-8" ?>
<frame id="frame" title="Test Table" size="360,200" >
<panel id="pnl_North" layout="borderlayout"
constraints="BorderLayout.CENTER">
<scrollpane>
<table initclass="DNSTableModel"/>
</scrollpane>
</panel>
</frame>
To make your program work, I did change a few things
public class Tables extends WindowAdapter {
private Tables() {
SwingEngine swix;
try {
swix = new SwingEngine( this );
Container c = swix.render( "xml/tabletest.xml" );
c.setVisible(true);
// swix.getRootComponent().setVisible(true);
if( c instanceof Window) {
((Window)c).addWindowListener(this);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Invoked when the user attempts to close the window
* from the window's system menu. If the program does not
* explicitly hide or dispose the window while processing
* this event, the window close operation will be cancelled.
*/
public void windowClosing(WindowEvent e) {
System.out.println( "Good Bye!" );
super.windowClosing(e);
System.exit( 0 );
}
I can send you the complete source files, if you have any further
difficulties.
Frank
I made these changes but I am still not able to get the table header
displayed :-(
I must be missing something really fundamental and stupid.
Here is my simple XML file....
<?xml version="1.0" encoding="UTF-8" ?>
<frame id="frame" title="Test Table" size="360,200" >
<panel id="pnl_North" layout="borderlayout"
constraints="BorderLayout.NORTH">
<table initclass="DNSTableModel"/>
</panel>
</frame>
And here is my tablemodel class......
public class DNSTableModel extends DefaultTableModel {
/**
* Constructs a DefaultTableModel object.
*/
public DNSTableModel() {
super();
String[] columnNames = {"Name",
"E-mail Address",
"Comments"};
addColumn(columnNames[0]);
addColumn(columnNames[1]);
addColumn(columnNames[2]);
Object[][] data = {
{"admin", "[EMAIL PROTECTED]","First Administrator"},
{"dponos", "[EMAIL PROTECTED]","Best Administrator"}
};
addRow(data[0]);
addRow(data[1]);
}
public int getColumnCount() {
//this line of code is from the superclass
int s = columnIdentifiers.size();
//added this just in case
System.out.println("columns =" + s);
return 3;
}
public String getColumnName(int column) {
//these lines of code are from the superclass. They work fine.
Object id = null;
String col;
if (column < columnIdentifiers.size()) {
id = columnIdentifiers.elementAt(column);
}
col = (id == null) ? super.getColumnName(column)
: id.toString();
//added these lines just in case.....
System.out.println(col);
switch (column) {
case 1:
return "Name";
case 2:
return "E-mail address";
case 3:
return "Comments";
default:
return null;
}
}
And here is my application classl mostly copied from Actions.java in the
samples....
private Tables() {
try {
swix = new SwingEngine( this );
swix.render( "xml/tables.xml" );
swix.getRootComponent().setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Invoked when the user attempts to close the window
* from the window's system menu. If the program does not
* explicitly hide or dispose the window while processing
* this event, the window close operation will be cancelled.
*/
public void windowClosing(WindowEvent e) {
System.out.println( "Good Bye!" );
super.windowClosing(e);
System.exit( 0 );
}
//
// Make the class bootable
//
public static void main(String[] args) {
new Tables();
}
}
On Mon, 2005-01-24 at 01:17, [EMAIL PROTECTED] wrote:
List for Users of Carlsbad Cubes' Technologies and Products
<Forum@carlsbadcubes.com> schrieb am 23.01.05 19:53:02:
I am having difficulty getting table headers to show up in the GUI. I
have a table that I am initializing through a table model. That part is
working just fine.
I tried using the tableheader tag, and initializing it using a
tablecolumnmodel.
I usually use code like this in my tablemodel:
public int getColumnCount() {
return ...;
}
/* (non-Javadoc)
* @see javax.swing.table.AbstractTableModel#getColumnName(int)
*/
public String getColumnName(int column) {
switch (column) {
case ...:
return ...;
case ...:
return ...;
default:
return null;
}
}
Works like a charme ;)
I also tried not using a tableheader tag, and adding columns to the
tablemodel.
Never had to use this, so I cannot help you there...
Frank
Any help on this subject would be greatly appreciated.
_______________________________________________
Forum mailing list
Forum@carlsbadcubes.com
http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
_______________________________________________
Forum mailing list
Forum@carlsbadcubes.com
http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
_______________________________________________
Forum mailing list
Forum@carlsbadcubes.com
http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com