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



Reply via email to