Re: tables and table headers

Frank Meissner <[email protected]> Mon, 24 Jan 2005 23:43:39 +0100
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
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 <[email protected]> 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
>>>[email protected]
>>>http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
>>
>>
>>
>>
>>_______________________________________________
>>Forum mailing list
>>[email protected]
>>http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
> 
> 
> 
> _______________________________________________
> Forum mailing list
> [email protected]
> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
>