Enhancement requst: af:table height&width:auto (and more...)

Hello again!
Today is my day to deal with af:table :)))
Please, consider refactoring af:table to allow width&height:auto!!! And, please, please, please, allow something like
<af:table rowsHeight="x">
so the height is set to exactly display x rows (and set height automatically).
I'm really having hard time to explain to users that tables must(!!!) have fixed size – wasting space on UI when small amount of data is rendered... and user have to scroll down to see other content... huh! The customers....
(guys who agree, please add +1 post to this forum so dev's take it seriously – thanks!)
While I'm here, got another idea: enable setting af:inputText to multi-row input mode WHILE having height of single row (allowing automatic overflow by x and/or y axis). This is another example of UI space saving enhancement desperately needed...
Cheers,
PaKo

I have the same issue. The only way I able to get a table resizing correctly is to have the table in the facet of either 'panelStretchLayout' or 'panelSplitter' directly. And I mean directly. Do not have it content in any other component.
If you contain the table with panelBox or paneGroupLayout, the resizing does not work.
For my requirement, I have to contain the table inside a panel box (for the nice looking header etc.) and it has to resize correctly.
I would really like ADF group to solve this issue too.
HTH,
--AJ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • Problems with retrieving data from tables with 240 and more records

    Hi,
    I've been connecting to Oracle 11g Server (not sure exact version) using Oracle 10.1.0 Client and O10 Oracle 10g driver. Everything was ok.
    I installed Oracle 11.2.0 Client and I started to have problems with retrieving data from tables.
    First I used the same connection string, driver and so on (O10 Oracle 10g) then I tried ORA Oracle but with no luck. The result is like this:
    I'm able to connect to database. I'm able to retrieve data but from small tables (e.g. with 110 records it works perfectly using both O10 and ORA drivers). When I try to retrieve data from tables with like 240 and more records retrieval simply hangs (nothing happens at all - no error, no timeout). Application seems to hang forever.
    I'm using Powerbuilder to connect to Database (either PB10.5 using O10 driver or PB12 using ORA driver). I used DBTrace, so I see that query hangs on the first FETCH.
    So for the retrievals that hang I have something like:
    (3260008): BIND SELECT OUTPUT BUFFER (DataWindow):(DBI_SELBIND) (0.186 MS / 18978.709 MS)
    (3260008): ,len=160,type=DECIMAL,pbt=4,dbt=0,ct=0,prec=0,scale=0
    (3260008): ,len=160,type=DECIMAL,pbt=4,dbt=0,ct=0,prec=0,scale=1
    (3260008): ,len=160,type=DECIMAL,pbt=4,dbt=0,ct=0,prec=0,scale=0
    (3260008): EXECUTE:(DBI_DW_EXECUTE) (192.982 MS / 19171.691 MS)
    (3260008): FETCH NEXT:(DBI_FETCHNEXT)
    and this is the last line,
    while for retrievals that end, I have FETCH producing time, data in buffer and moving to the next Fetch until all data is retrieved
    On the side note, I have no problems with retrieving data either by SQL Developer or DbVisualizer.
    Problems started when I installed 11.2.0 Client. Even if I want to use 10.0.1 Client, the same problem occurs. So I guess something from 11.2.0 overrides 10.0.1 settings.
    I will appreciate any comments/hints/help.
    Thank you very much.

    pgoel wrote:
    I've been connecting to Oracle 11g Server (not sure exact version) using Oracle 10.1.0 Client and O10 Oracle 10g driver. Everything was ok.Earlier (before installing new stuff) did you ever try retrieving data from big tables (like 240 and more records), if yes, was it working?Yes, with Oracle 10g client (before installing 11g) I was able to retrieve any data, either it was 10k+ records or 100 records. Installing 11g client changed something that even using old 10g client (which I still have installed) fails to work. The same problem occur no matter I'm using 10g or 11g client now. Powerbuilder hangs on retrieving tables with more than like 240 records.
    Thanks.

  • Image width=auto height=auto problems in Internet Explorer

    I thought I was having an issue with my MM_swapimage in Internet explorer but it appears to be my images scale.
    I have my main large image that has a width=auto height=auto which does not appear in Internet Explorer only
    the smaller "thumb" images of varying size have a height=40px width=auto so that the different sizes of thumb images look horizontaly uniform. how do I get the images to work without setting the exact scale for each image?

    once I removed the "auto" setting everything worked just fine, the images came in at the proper pixel size, and the thumb nail images where proportional in size seeing how I had a height set of 40 px the width took care of itself.
    Any Ideas on where I can find a good tutorial on client login and password to access pages with their content?

  • Locking Table Cell width/height

    Is there a way to lock a table size width or height?
    Thanks,
    Lorne

    > I'm open to suggestions for how to organize these
    galleries? We have
    > hundreds
    > of photos and we really are wanting to have ONE .html
    page per project.
    > Not
    > twelve or what not.
    >
    Go here -
    http://www.projectseven.com/
    Look at their slideshow extensions. You won't find better
    ones anywhere.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "lorne17" <[email protected]> wrote in
    message
    news:g4besi$dsh$[email protected]..
    > I'm trying to get an image gallery with thumbnails. But
    half our images
    > are
    > landscape the other half portrait. So it's hard to get
    them to be the
    > same
    > resolution. Some are panoramic too.
    >
    > So what I need is a way to have my images show up on the
    site without
    > disrupting the format the text.
    >
    > Look here: www.barleypfieffer.com Click
    portfolio/residential/any
    > project.
    > You'll see our current layout. The last web designer has
    each and every
    > image
    > a different webpage. So trying to add new projects and
    update current
    > just
    > takes entirely too long.
    >
    > I'm open to suggestions for how to organize these
    galleries? We have
    > hundreds
    > of photos and we really are wanting to have ONE .html
    page per project.
    > Not
    > twelve or what not.
    >
    > Thanks,
    > Lorne
    >

  • Wpf/webbrowser:-how to get height,width,scroll height and scroll width of render html/xhtml/xml pages.

    hi I am using to web browser control to get  height,width,scroll height and scroll width in wpf c#.
    Could You please tell me how to achive this information if .pages contain this css on body.
     style="-webkit-column-width:800px;  margin-right:800px; -moz-column-width: 800px; column-width: 800px; -webkit-column-gap: 0px; -moz-column-gap: 0px; column-gap: 0px; -webkit-column-rule: 0px solid #000;-moz-column-rule: 0px solid #000;column-rule:
    0px solid #000; height:800px; overflow:visible !important; ; margin:0px; -moz-margin:0px;-webkit-margin:0px;display:block;"
    I have to get height,width,scroll height and scroll width  on on complete event.
    this is MainWindow.xaml page
    <Window x:Class="WPFWebBrowserInvokeScript.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="820" Width="820" Loaded="Window_Loaded">
        <Grid>
            <WebBrowser HorizontalAlignment="Left"
       Height="800"
       Margin="10,10,0,0"
       VerticalAlignment="Top"
       Width="800"
       Name="MainBrowser"/>
            <!--<Grid x:Name="grid1"></Grid>-->
        </Grid>
    </Window>
    this  MainWindow.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.IO;
    namespace WPFWebBrowserInvokeScript
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
            public MainWindow()
                InitializeComponent();
            private void Window_Loaded(object sender, RoutedEventArgs e)
                string strHtml = "";
                using (StreamReader sr = new StreamReader("D:/epubunzip/ePub2_Sample03a_USgovernment_SE_Gr9-12_EN_U1/OPS/9780547451381_c01.html"))
                    strHtml = sr.ReadToEnd();
                    strHtml = strHtml.Replace("<body>", "<body  style=\"-webkit-column-width:800px; overflow:visible !important;  -moz-column-width: 800px; column-width: 800px; -webkit-column-gap:
    0px; -moz-column-gap: 0px; column-gap: 0px; -webkit-column-rule: 0px solid #000;-moz-column-rule: 0px solid #000;column-rule: 0px solid #000; height:800px; ; margin:0px; -moz-margin:0px;-webkit-margin:0px;display:block;\">");
                    string str = "<script> function execScript(){return document.body.scrollWidth;}</script></head>";
                    strHtml = strHtml.Replace("</head>", str);
                    byte[] bytes = Encoding.UTF8.GetBytes(strHtml);
                    MemoryStream ms = new MemoryStream();
                    ms.Write(bytes, 0, bytes.Length);
                    ms.Position = 0;
                    MainBrowser.NavigateToStream(ms);
                    //MainBrowser.NavigateToString(strHtml);
                    MainBrowser.LoadCompleted += new LoadCompletedEventHandler(MainBrowser_LoadCompleted);
            void MainBrowser_LoadCompleted(object sender, NavigationEventArgs e)
    //here I am trying to get  height,width,scroll height and scroll width
    //It's gtting wrong info
              WebBrowser webBrowser = (WebBrowser)sender;
                //mshtml.htmld webDocument = (mshtml.HTMLDDElement)webBrowser.Document;
                //mshtml.HTMLBody webBody = (mshtml.HTMLBody)webDocument;
                //    var dd = webDocument.InvokeScript("execScript");
                //    //  string script = "document.body.style.overflow ='hidden'";         
                //    // var dd = webDocument.InvokeScript("execScript", new Object[] { script, "JavaScript" });
                //    var elems = webBrowser.Document.GetElementsByTagName("body");
                //    System.Windows.Forms.HtmlElement webBody = (System.Windows.Forms.HtmlElement)webDocument.Body;
           

    >>if i am rendering html from MemoryStreamor string in webbrowser control in wpf It's not applying this css
    Yes it does. If you for example add background-color: yellow; to the stlyle you will see that the page turn yellow:
    strHtml = strHtml.Replace("<body>", "<body style=\"-webkit-column-width:800px; background-color: yellow; overflow:visible !important; -moz-column-width: 800px; column-width: 800px; -webkit-column-gap: 0px; -moz-column-gap: 0px; column-gap: 0px; -webkit-column-rule: 0px solid #000;-moz-column-rule: 0px solid #000;column-rule: 0px solid #000; height:800px; ; margin:0px; -moz-margin:0px;-webkit-margin:0px;display:block;\">");
    If the styles doen't get applied as expected it is a browser issue. The WebBrowser control emulates Internet Explorer in IE7 rendering mode by default.  You will have to change some registry settings to change this behaviour. Please refer to the following
    links for more information:
    http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/cf66e0cd-ab6f-45b8-b230-1d78f26670d2/opening-links-from-wpf-webbrowser-control-in-default-browser-instead-of-ie?forum=wpf
    -moz-column-width only works in FireFox for example.
    You may also navigate to an actual page and inject some javascript function that for example adds the styles to the body element dynamically or set the style properties of the body element directly:
    private void Window_Loaded(object sender, RoutedEventArgs e)
    MainBrowser.Navigate(@"E:/Epubs/ePub2_Sample05_Biology_SampleChapter_EN/OPS/ch01.xhtml");
    MainBrowser.LoadCompleted += new LoadCompletedEventHandler(webb_DocumentCompleted);
    private void webb_DocumentCompleted(object sender, NavigationEventArgs e)
    WebBrowser webBrowser = (WebBrowser)sender;
    dynamic doc = webBrowser.Document;
    //int _scrollWidth = (int)webBrowser.InvokeScript("execScript");
    //mshtml.HTMLDocument webDocument = (mshtml.HTMLDocument)webBrowser.Document;
    mshtml.HTMLScriptElement script = (mshtml.HTMLScriptElement)doc.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.innerHTML = "function doSomething(){ /* do something here... */ }";
    //add script to the head
    dynamic head = doc.getElementsByTagName("head")[0];
    head.appendChild(script);
    mshtml.HTMLBody body = (mshtml.HTMLBody)doc.getElementsByTagName("body")[0];
    body.style.background = "yellow";
    //set any body.style property here...
    webBrowser.InvokeScript("doSomething");
    That's about it as far as WPF is concerned.
    Please remember to mark helpful posts as answer and/or helpful.

  • Help me Please..? How to change X & Y co-ordinate and height & width selected content...?

    Hi Everyone!
              This is Vijay.I'm new baby to Indesign Script.In my office i took one task for indesign, that's i link one image to picture box that image jump from original position.so i copy that picture box and paste in place to new layer and now link the Eps to that box. againg jump that image. actually (manualy) i copy height,width , center  X and Y coordinates from old picture box image and Paste in to newly link image. then link image was perfectly sit in position. any one do for Script or any one help me how to do this..Script.
    Thanks in Advance
    -yajiv
    Sample for ur clarification....

    hi Dave!
                   Thanks for Quick Reply. Actually i know very well in Java script. may be i finish that script with in 2 weeks. i try to work but i can't that why i post..!
    can you tell any idea to solve that problem.now the problem is i can't change height and width. thanks in Advance.
    -yajiv
    my script is..
        var i,j;
        var mysel=app.activeDocument.selection;   
        var myDoc = app.activeDocument;
        if (app.documents.length > 0){
            if (mysel.length > 0) {
                //app.copy();
                var myObj1 = app.selection[0];
                var myObj2 = app.selection[1];
                var vb = myObj1.visibleBounds;
                var vb1 = myObj2.visibleBounds;
                var myWidth = vb[3]-vb[1];
                var myHeight = vb[2]-vb[0];
                var myWidth1 = vb1[3]-vb1[1];
                var myHeight1 = vb1[2]-vb1[0];
                var X=(vb[3]+vb[1])/2;
                var Y=(vb[2]+vb[0])/2;
                //myObj1.deselect();
                myObj.visibleBounds=myObj1.visibleBounds;
                alert(myObj.visibleBounds);
                alert("MyObjWidth = "+myWidth+"\n"+"MyObjHeight = "+ myHeight);
                 alert("MyObjWidth1 = "+myWidth1+"\n"+"MyObjHeight1="+ myHeight1);
                 alert(myObj.visibleBounds);        
            else {
                alert("Nothing is selected. Please select an object and try again.");
        else {
            alert("No InDesign documents are open. Please open a document and try again.");

  • Loading SWF into level and setting height/width/location?

    Hi folks, I am an old AS2 guy who gave up on Flash heavy coding when it switched to AS3. Always thought it was less intuitive, longer, and a brand new language and I got tired of trying to keep up when most of my clients did not want to pay for a full flash site. But I got this client...
    Here's the problem, I can load a swf into my main stage or into an MC , but I cannot find out anywhere how to set parameters or load into a level so it doesn't replace the current material or fix to a size that doesn't block my other material.
    I've gotten this far:
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    loadGallery();
    function loadGallery():void
    var l:Loader = new Loader();
    var req:URLRequest = new URLRequest("shortstack.swf");
    l.load(req);
    l.contentLoaderInfo.addEventListener(Event.INIT, galleryLoaded);
    function galleryLoaded(e:Event):void
    addChild(e.target.loader);
    What i want to do is load shortstack.swf into level 5, say, and fix it to the bottom left corner of the stage, and set its height to 400px and width to 980. 
    I have a an MC on the stage at those exact dimensions called placeholderMC, but I cannot figure out a way to target it, and the tutorials I've read have to do with loading on CLICK (I want it to load on enterFrame), and none of them tell me how to set parameters, as I could in old AS2.
    FWIW, AS3 may be more powerful, but AS2 was easier to understand.
    TIA,
    Jeff

    http://www.adobe.com/devnet/flash/quickstart/display_list_programming_as3.html

  • How to display the height, width and resolution of an EPS file

    Hi friends,
    I have to do a small module.. in that I have to display height, width and resolution of a given EPS file..
    please help..
    Thank you very much..
    Regards,
    krishna.

    Hi friends,
    I have to do display the resolution of an eps file..
    I have to use only Java.
    Can any body know the eps file format...
    I searched through net but I didn't find any best tutorial for that format..
    I am able to find the height and width from the eps file..
    By just opening that eps file.. I found %%Bounding box height width....as in some post posted by our jive member...
    In this way, is there any way to find the resolution..
    if any body knows this details.. please post.. Even if you have the file format tutorial post that one..
    Thank you.
    Regards,
    Krishna.

  • [svn:fx-4.x] 15080: Fix FTE in UIFTETextField which occured if baseline getter was called before width or height were set and autoSize =TextFieldAutoSize.NONE.

    Revision: 15080
    Revision: 15080
    Author:   [email protected]
    Date:     2010-03-26 14:47:47 -0700 (Fri, 26 Mar 2010)
    Log Message:
    Fix FTE in UIFTETextField which occured if baseline getter was called before width or height were set and autoSize=TextFieldAutoSize.NONE.  In this case, createTextLinesFromTextBlock returned without creating any text lines because there wasn't any width.  FTETextField.getLineMetrics assumes there is at least one line and throws a range error if there isn't.  In this case, set autoSize to TextFieldAutoSize.LEFT, measure the text, and then restore the autoSize value.
    QE notes:
    Doc notes: None
    Bugs: SDK-26016
    Reviewed By: Jason
    Tests run: checkintests
    Is noteworthy for integration: No
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-26016
    Modified Paths:
        flex/sdk/branches/4.x/frameworks/projects/spark/src/mx/core/UIFTETextField.as

  • Charting using ActionScript and chart height,width and axis labels

    hello, i am creating charts using action script but can't
    seem to do 2 things right now. 1. put labels on the axisis. 2. i
    can't set the height/width to 100%. does anyone know how?...below
    is the function i use to create the charts
    public var myChart:BarChart;
    public var series1:BarSeries;
    public var legend1:Legend;
    private function addGraph():void {
    // Create the chart object and set some
    // basic properties.
    myChart = new BarChart();
    myChart.showDataTips = true;
    myChart.dataProvider = feedRequest.lastResult.root.data;
    // Define the category axis.
    var vAxis:CategoryAxis = new CategoryAxis();
    vAxis.categoryField = yAxis;
    vAxis.dataProvider = feedRequest.lastResult.root.data;
    myChart.verticalAxis = vAxis;
    myChart.width=100;
    myChart.height=100;
    var la = new LinearAxis;
    // Add the series.
    var mySeries:Array=new Array();
    series1 = new BarSeries();
    series1.xField=xAxis;
    series1.yField=yAxis;
    series1.displayName = xAxis;
    mySeries.push(series1);
    myChart.series = mySeries;
    // Create a legend.
    legend1 = new Legend();
    legend1.dataProvider = myChart;
    // Attach chart and legend to the display list.
    chartWindow.addChild(myChart);
    chartWindow.visible=true;
    }

    use the percentWidth and percentHeight properties.

  • Table cell widths and images

    I am try to create a able that will have 4 columns in all but
    the the layout will be flexible.
    That is the text might span 3 columns and an image might be
    in the remaining 1 column. Or the timage will span 2 columns and
    the text in the remaining 2 columns. Sort of a flexible magazine
    layout that can combine text and photos. . you can see what I came
    up with at this URL
    http://www.historicchevychasedc.org/test/
    Even though the drawing of the house is much small than the 3
    columns it occupies it throws the whole layout off. When I removed
    the image or replace it with txt the layout looks fine. (When it
    looks fine the first paragraph starts to the immediate right of the
    small photo, there isn't that large gap of space. This paragraph
    spans 3 columns)
    Is there anyway to make tables behave? Or is there a solution
    sans table that is flexible enough to accommodate a variety of text
    and photo arrangements?
    Tom

    Hello,
    I agree with Malcom.
    Separate tables or nested tables if you must use tables, but
    don't merge
    cells as it can cause trouble, especially rowspans.
    The layout you built could also be built by placing all the
    text in a div
    and floating the images to the left or to the right.
    Here's some great info:
    http://css.maxdesign.com.au/floatutorial/
    Take care,
    Tim
    "Malcolm _" <[email protected]> wrote in message
    news:[email protected]..
    > On Mon, 25 Aug 2008 21:03:23 +0000 (UTC), "TSemmes"
    > <[email protected]> wrote:
    >
    >
    >>
    http://www.historicchevychasedc.org/test/
    >>
    >> Even though the drawing of the house is much small
    than the 3 columns it
    >>occupies it throws the whole layout off. When I
    removed the image or
    >>replace it
    >>with txt the layout looks fine. (When it looks fine
    the first paragraph
    >>starts
    >>to the immediate right of the small photo, there
    isn't that large gap of
    >>space.
    >>This paragraph spans 3 columns)
    >
    > If you want to use tables for this - I would not try to
    put all the
    > rows in one table, but would have a one table for each
    image - and
    > with a second row if you wanted a caption underneath.
    >
    >
    >>
    >> Is there anyway to make tables behave? Or is there a
    solution sans table
    >> that
    >>is flexible enough to accommodate a variety of text
    and photo
    >>arrangements?
    >>
    >
    > I gave up with tables for things like this some time ago
    - just used
    > CSS-P floats to contain images and floating text next to
    the images.
    > --
    >
    > ~Malcolm~*...
    > ~*

  • Opening file present in treeview by clicking on it within a table? I had created a table with a row and two columns. in one column i had dislayed treeview and want that if i click on the file in treeview it gets opened in other column. Can this happen?

    I also got a code in some website related to my problem but there are errors in this code that i am not able to understand can you correct those errors:
    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using Microsoft.Web.UI.WebControls;
    namespace shark.TreeView
    /// <summary>
    /// Summary description for DocTree.
    /// </summary>
    public class DocTree : System.Web.UI.Page
    protected Microsoft.Web.UI.WebControls.TreeView TreeCtrl;
    public DocTree()
    Page.Init += new System.EventHandler(Page_Init);
    private void Page_Load(object sender, System.EventArgs e)
    if ( ! this.IsPostBack )
    // add tree node "type" for folders and files
    string imgurl = "/shark/webctrl_client/1_0/Images/";
    TreeNodeType type;
    type = new TreeNodeType();
    type.Type = "folder";
    type.ImageUrl = imgurl + "folder.gif";
    type.ExpandedImageUrl = imgurl + "folderopen.gif";
    TreeCtrl.TreeNodeTypes.Add( type );
    type = new TreeNodeType();
    type.Type = "file";
    type.ImageUrl = imgurl + "html.gif";
    TreeCtrl.TreeNodeTypes.Add( type );
    // start the recursively load from our application root path
    // (we add the trailing "/" for a little substring trimming below)
    GetFolders( MapPath( "~/./" ), TreeCtrl.Nodes );
    // expand 3 levels of the tree
    TreeCtrl.ExpandLevel = 3;
    private void Page_Init(object sender, EventArgs e)
    InitializeComponent();
    // recursive method to load all folders and files into tree
    private void GetFolders( string path, TreeNodeCollection nodes )
    // add nodes for all directories (folders)
    string[] dirs = Directory.GetDirectories( path );
    foreach( string p in dirs )
    string dp = p.Substring( path.Length );
    if ( dp.StartsWith( "_v" ) )
    continue; // ignore frontpage (Vermeer Technology) folders
    nodes.Add( Node( "", p.Substring( path.Length ), "folder" ) );
    // add nodes for all files in this directory (folder)
    string[] files = Directory.GetFiles( path, "*.aspx" );
    foreach( string p in files )
    nodes.Add( Node( p, p.Substring( path.Length ), "file" ) );
    // add all subdirectories for each directory (recursive)
    for( int i = 0; i < nodes.Count; i++ )
    if ( nodes[ i ].Type == "folder" )
    GetFolders( dirs[ i ] + "\\", nodes[i ].Nodes );
    // create a TreeNode from the specified path, text and type
    private TreeNode Node( string path, string text, string type )
    TreeNode n = new TreeNode();
    n.Type = type;
    n.Text = text;
    if ( type == "file" )
    // strip off the physical application root portion of path
    string nav = "/" + path.Substring( MapPath( "/" ).Length );
    nav.Replace( '\\', '/' );
    n.NavigateUrl = nav;
    // set target if using FRAME/IFRAME
    n.Target="doc";
    return n;
    #region Web Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    this.Load += new System.EventHandler(this.Page_Load);
    #endregion
    and the design that i got on website for the code that i displayed just above it is
    <%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
    <%@ Page language="c#" Codebehind="DocTree.aspx.cs" AutoEventWireup="false" Inherits="shark.TreeView.DocTree" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript (ECMAScript)" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body>
    <form id="DocTree" method="post" runat="server">
    <table height="100%" cellSpacing="0" cellPadding="8" border="0">
    <tr height="100%">
    <td vAlign="top">
    <iewc:treeview id="TreeCtrl" runat="server" SystemImagesPath="/shark/webctrl_client/1_0/treeimages/">
    </iewc:treeview>
    </td>
    <td vAlign="top" width="100%" height="100%">
    Click on any *.aspx page in the tree and it should load here <iframe id="doc" name="doc" frameBorder="yes" width="100%" scrolling="auto" height="100%">
    </iframe>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </HTML>
    This is my code for viewing treeview but it is not expanding plz help me in this also
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.IO;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;
    using System.Media;
    using System.Drawing;
    using System.Drawing.Imaging;
    public partial class _Default : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)
    if (Page.IsPostBack == false)
    System.IO.DirectoryInfo RootDir = new System.IO.DirectoryInfo(Server.MapPath("~/Files"));
    // output the directory into a node
    TreeNode RootNode = OutputDirectory(RootDir, null);
    // add the output to the tree
    MyTree.Nodes.Add(RootNode);
    TreeNode OutputDirectory(System.IO.DirectoryInfo directory, TreeNode parentNode)
    // validate param
    if (directory == null) return null;
    // create a node for this directory
    TreeNode DirNode = new TreeNode(directory.Name);
    // get subdirectories of the current directory
    System.IO.DirectoryInfo[] SubDirectories = directory.GetDirectories();
    // OutputDirectory(SubDirectories[0], "Directories");
    // output each subdirectory
    for (int DirectoryCount = 0; DirectoryCount < SubDirectories.Length; DirectoryCount++)
    OutputDirectory(SubDirectories[DirectoryCount], DirNode);
    // output the current directories file
    System.IO.FileInfo[] Files = directory.GetFiles();
    for (int FileCount = 0; FileCount < Files.Length; FileCount++)
    DirNode.ChildNodes.Add(new TreeNode(Files[FileCount].Name));
    } // if the parent node is null, return this node
    // otherwise add this node to the parent and return the parent
    if (parentNode == null)
    return DirNode;
    else
    parentNode.ChildNodes.Add(DirNode);
    return parentNode;
    This is my design
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <style type="text/css">
    .auto-style2
    width: 412px;
    .auto-style3
    width: 174px;
    .auto-style4
    width: 743px;
    .auto-style5
    width: 506px;
    height: 226px;
    </style>
    </head>
    <body>
    <form id="form1" method="post" runat="server">
    <table align:"center" class="auto-style4" border="1" style="table-layout: fixed; border-spacing: 1px">
    <tr>
    <td class="auto-style3">
    <br />
    <br />
    <br />
    <br />
    </td>
    <td class="auto-style2">
    <br />
    <br />
    <br />
    <br />
    </td>
    </tr>
    <tr>
    <td class="auto-style3" valign="top">
    <asp:TreeView Id="MyTree" PathSeparator = "|" ExpandDepth="0" runat="server" ImageSet="Arrows" AutoGenerateDataBindings="False">
    <SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px" VerticalPadding="0px" ForeColor="#5555DD"></SelectedNodeStyle>
    <NodeStyle VerticalPadding="0px" Font-Names="Tahoma" Font-Size="10pt" HorizontalPadding="5px" ForeColor="#000000" NodeSpacing="0px"></NodeStyle>
    <ParentNodeStyle Font-Bold="False" />
    <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD"></HoverNodeStyle>
    </asp:TreeView>
    </td>
    <td class="auto-style2">
    <base target="_blank" /> <iframe frameborder="0" scrolling="yes" marginheight="0" marginwidth="0"
    src="" class="auto-style5"></iframe>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Hi meghage,
    From your code, it is a WebForm project.
    This forum is to discuss problems of Windows Forms. Your question is not related to the topic of this forum.
    You can consider posting it in asp.net forum for supports . Thanks.
    ASP.NET: http://forums.asp.net
    Regards,
    Youjun Tang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • I want my spry horizontal accordian in explorer content table to be closed and also wont align left

    I've tried everything.  my accordian will stay closed when landing on the page in all browsers except explorer and also I can't get the tab text to align left no matter what I do.
    Here is the page http://www.lohud.com/legacy/advertising/mediakit/tjn_content_guide.html 
    Please help I've been at this for many many hours.
    Here is my code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/Main.dwt" codeOutsideHTMLIsLocked="false" -->
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- InstanceBeginEditable name="doctitle" -->
    <title>The Journal News Media Group</title>
    <!-- InstanceEndEditable -->
    <style type="text/css">
    body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    text-align: center;
    background-image: url(images/backdrop.png);
    background-repeat: no-repeat;
    background-position:top center;
    background-color: #77787B;
    .pageLable {
    font-family: arial;
    font-size: 18pt;
    color: #00adf0;
    line-height: 25pt;
    vertical-align: middle;
    padding-top: 10px;
    .pageLableTagline {
    font-family: arial;
    font-size: 18pt;
    color: #A7A9AC;
    .BlueText {
    color: #00adf0 !important;
    .descriptionFont {
    font-family: arial;
    font-size: 10pt;
    line-height: 14pt;
    .labelSub {
    font-family: arial;
    font-size: 14px;
    color: #00adf0;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    margin-left: 0px;
    .content12 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    .fontNinePoint {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9px;
    .white {
    color: #FFF !important;
    </style>
    <!-- InstanceBeginEditable name="head" -->
    <script src="SpryAssets/SpryAccordion.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryAccordion.css" rel="stylesheet" type="text/css" />
    <!-- InstanceEndEditable -->
    <style type="text/css">
    a:link {
    text-decoration: none;
    a:visited {
    text-decoration: none;
    a:hover {
    text-decoration: underline;
    a:active {
    text-decoration: none;
    body,td,th {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    h1,h2,h3,h4,h5,h6 {
    font-family: Arial, Helvetica, sans-serif;
    h6 {
    font-size: 8px;
    color: #000;
    h4 {
    font-size: 12px;
    .fontsmall {
    font-size: 9pt;
    </style>
    <style type="text/css">
    </style>
    <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    </head>
    <body leftmargin="0">
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td><table width="906" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td width="126" rowspan="3"><a href="index.html"><img src="images/Logo_Nav_Black.jpg" alt="The Journal News Media Group" width="126" height="132" border="0" longdesc="index.html" /></a></td>
              <td width="780" height="30" align="right" valign="top"><table width="657" border="0" align="right" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="61" height="32" align="right" valign="middle"> </td>
                  <td width="372" align="right" valign="middle"><a href="http://www.linkedin.com/groups/Journal-News-Media-Group-4828545?trk=myg_ugrp_ovr" target="_new"><img src="images/linkedin.png" alt="linkedin" width="16" height="16" border="0" /></a></td>
                  <td width="37" align="center" valign="middle"><a href="http://www.facebook.com/pages/The-Journals-News-Media-Group/124999397672489" target="_new"><img src="images/facebook.png" alt="facebook" width="8" height="16" border="0" /></a></td>
                  <td width="90" align="center" valign="middle" nowrap="nowrap" class="white" style="font-size:12px"><strong><a href="newsletter.html" class="white">newsletter</a></strong></td>
                  <td width="24" align="center" valign="middle" class="white" style="font-size:12px"><img src="images/dot.png" alt="" width="9" height="9" /></td>
                  <td width="90" align="center" valign="middle" nowrap="nowrap" class="white" style="font-size:12px"><strong>  <a href="contact.html" class="white">contact us  </a></strong></td>
                </tr>
              </table></td>
            </tr>
            <tr>
              <td align="right" valign="top"><table width="657" border="0" align="right" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="75" bgcolor="#000000"> </td>
                  <td width="369" bgcolor="#000000"><ul id="MenuBar1" class="MenuBarHorizontal">
                    <li class="MenuBarItemSubmenu"><a href="#">About</a>
                      <ul>
                        <li><a href="our_brand.html">Our Brand</a></li>
                        <li><a href="our_audience.html">Our Audience</a></li>
                        <li><a href="giving_back.html">Giving Back</a></li>
                        <li><a href="careers.html">Careers</a></li>
                        </ul>
                      </li>
                    <li><a href="digital.html" >Digital</a>                  </li>
                    <li><a href="#">Print</a>
                      <ul>
                        <li><a class="MenuBarItemSubmenu" href="#">Journal News</a>
                          <ul>
                            <li><a href="tjn_content_guide.html">Content Guide</a></li>
                            <li><a href="tjn_print_reach.html">Print Reach</a></li>
                            </ul>
                          </li>
                        <li><a href="special_sections.html">Special Sections</a></li>
                        <li><a href="creative_ad_units.html">Creative Ad Units</a></li>
                        <li><a href="zoning_guide.html">Zoning Guide</a></li>
                        </ul>
                      </li>
                    <li><a href="events.html">Events</a>
                      <ul>
                        <li><a href="golf_show.html">Golf Show</a></li>
                        <li><a href="theater_awards.html">Metropolitan High School Theater Awards</a></li>
                        <li><a href="rockland.html">Rockland Scholar Athlete</a></li>
                        <li><a href="ray_rice_day.html">Ray Rice Day</a></li>
                        <li><a href="cookie_swap.html">Cookie Swap</a></li>
                        <li><a href="give_grow.html">Give &amp; Grow</a></li>
                        </ul>
                      </li>
                    <li><a href="#"> Specs</a>
                      <ul>
                        <li><a href="print_specs.html">Print Specs</a></li>
                        <li><a href="digital_specs.html">Digital Specs</a></li>
                        <li><a href="deadlines.html">Deadlines</a></li>
                        <li><a href="terms_conditions.html">Terms &amp; Conditions</a></li>
                        </ul>
                      </li>
                  </ul></td>
    </tr>
                <tr> </tr>
              </table></td>
            </tr>
            <tr>
              <td height="70" align="right" valign="top"> </td>
            </tr>
          </table>
          <table width="906" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td height="40"> </td>
            </tr>
        </table></td>
      </tr>
    </table>
    <!-- InstanceBeginEditable name="MainTable" -->
    <table width="906" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td height="300" valign="top" bgcolor="#FFFFFF"><table width="906" border="0" align="center" cellpadding="10" cellspacing="0">
          <tr>
            <td height="57" align="left" valign="top" class="pageLable">Content Guide  <span class="pageLableTagline">lohud.com</span></td>
          </tr>
        </table> <div id="Accordion1" class="Accordion" tabindex="0">
          <div class="AccordionPanel">
            <div class="AccordionPanelTab">News</div>
            <div class="AccordionPanelContent">
              <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content: </strong>The latest headlines, by county, updated continuously to keep readers informed of breaking news as it happens. Here is where they go to first for the latest on issues of particular importance to area residents: crime, politics, business, education, health and New York State news.<br />
                    <strong><br />
                    Advertiser Advantage:</strong> Benefit from prime positioning and high visibility on one of the most frequently<br />
                    visited pages on lohud.com.</td>
                  <td width="180" align="right"><img src="images/digital/contentguide/lh-news.jpg" alt="News" width="180" height="154" border="0" /></td>
                </tr>
              </table>
            </div>
          </div>
          <div class="AccordionPanel">
            <div class="AccordionPanelTab">Tax Watch</div>
            <div class="AccordionPanelContent">
              <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="685" align="left" valign="top" class="descriptionFont"><strong>Content: </strong>Money and taxes. It’s a passion topic that many area residents have a keen interest in following. Our standing Tax Watch feature on LoHud.com keeps them in-the-know with watchdog columns on government accountability, blogs from local tax experts, timely articles and columns.<br />
                    <strong><br />
                    Advertiser Advantage:</strong> Ideal environment for financial, banks, real estate, and business.</td>
                  <td width="179" align="right"><img src="images/digital/contentguide/lh-taxwatch.jpg" alt="Tax Watch" width="179" height="155" border="0" /></td>
                </tr>
              </table>
            </div>
          </div>
          <div class="AccordionPanel">
            <div class="AccordionPanelTab">Communities</div>
            <div class="AccordionPanelContent">
              <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content: </strong>Sixteen ultra-local homepages dedicated to the unique villages, towns and cities of Westchester County, with daily updates, photos and neighborhood conversations designed to involve <br />
                    and engage readers — and have them returning regularly for updates.<br />
                    <strong><br />
                    Advertiser Advantage: </strong>Ideal for smaller advertisers looking to reach their best potential customers<br />
                    within targeted geographic areas.</td>
                  <td width="181" align="right"><img src="images/digital/contentguide/lh-community.jpg" alt="Communities" width="179" height="158" border="0" /></td>
                </tr>
              </table>
            </div>
          </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Living Here</div>
            <div class="AccordionPanelContent">
              <table width="865" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="686" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> Awarded “First Place Winner/Niche Website” by the 2012 New York Associated Press! Offers an insider’s look at Lower Hudson Valley real estate for residents looking to buy, sell up, downsize or plan a renovation.<br />
                    <strong><br />
                    Advertiser Advantage:</strong> Ideal for real estate, financial, and home-related businesses. Provides a locally driven and highly targeted environment for your message.</td>
                  <td width="179" align="right"><img src="images/digital/contentguide/lh-livinghere.jpg" alt="News" width="179" height="155" border="0" /></td>
                </tr>
              </table>
            </div>
        </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Sports</div>
      <div class="AccordionPanelContent">
        <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> Comprehensive and updated frequently to keep fans up to date with the latest action from high school, college, major-league teams. Featuring game results, profiles of local athletes, perspective, commentary and blogs for reader interaction.<br />
              <strong><br />
              Advertiser Advantage:</strong> Action-packed environment for auto aftermarket, sporting goods, financial,<br />
              men’s interests, orthopedic and physical therapy businesses.</td>
            <td width="180" align="right"><img src="images/digital/contentguide/lh-sports.jpg" alt="Sports" width="180" height="158" border="0" /></td>
          </tr>
        </table>
      </div>
    </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Blogs</div>
      <div class="AccordionPanelContent">
        <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="683" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> Can we talk? We sure can…and readers love to hear what our writers and editors have<br />
    to say. Our lively Blogs site is where they can turn to for conversation and opinion on all kinds of <br />
    subjects — community, lifestyle &amp; entertainment, news, opinion and sports, including our extremely popular Yankees blog.<br />
              <strong><br />
              Advertiser Advantage:</strong> Benefit from prime positioning and visibility on highly targeted pages that offer maximum impact and response.</td>
            <td width="181" align="right"><img src="images/digital/contentguide/lh-blogs.jpg" alt="News" width="181" height="157" border="0" /></td>
          </tr>
        </table>
      </div>
    </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Multimedia</div>
      <div class="AccordionPanelContent">
        <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> A picture is worth a thousand words and this photo/video gallery keeps readers involved and engaged with compelling local photos from the week and informative feature videos on trending stories.<br />
              <strong><br />
              Advertiser Advantage:</strong> Ideal for retailers of all kinds, benefit from prime positioning and visibility on<br />
              highly targeted pages.</td>
            <td width="178" align="right"><img src="images/digital/contentguide/lh-multimedia.jpg" alt="Multimedia" width="178" height="157" border="0" /></td>
          </tr>
        </table>
      </div>
    </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Life & Leisure</div>
      <div class="AccordionPanelContent">
        <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> The perfect complement to our daily “Life &amp; Style” print section, it’s where readers go to be inspired and entertained! Featuring complete local restaurant and food coverage, weddings/engagement announcements, home &amp; garden tips, movie &amp; TV reviews, music and more.<br />
              <strong><br />
              Advertiser Advantage:</strong> Ideal weekly environment for restaurants, entertainment and leisure-related<br />
              businesses.</td>
            <td width="180" align="right"><img src="images/digital/contentguide/lh-lifeleisure.jpg" alt="Life and Leisure" width="180" height="158" border="0" /></td>
          </tr>
        </table>
      </div>
    </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Opinion</div>
      <div class="AccordionPanelContent">
        <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> Everybody’s got one — and this is where it counts. Our Opinion page on LoHud.com is just <br />
              that: opinions on the issues of the day, from our staff and from our readers, designed to inform, inspire and encourage interaction. Find editorials by our writers and editors, commentary, letters, editorial board surveys and more.<br />
              <strong><br />
              Advertiser Advantage:</strong> Benefit from prime positioning and visibility on highly targeted pages that offer maximum impact and response.</td>
            <td width="178" align="right"><img src="images/digital/contentguide/lh-opinion.jpg" alt="Opinion" width="178" height="156" border="0" /></td>
          </tr>
        </table>
      </div>
    </div>
    <div class="AccordionPanel">
      <div class="AccordionPanelTab">Obituaries</div>
      <div class="AccordionPanelContent">
        <table width="864" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="684" align="left" valign="top" class="descriptionFont"><strong>Content:</strong> Comprehensive and complete, with death notices, memorials, touching tributes and <br />
              convenient interactive features such as a search feature, free obituary alerts, one-click access to flowers and services, guest book signing and more.<br />
              <strong><br />
              Advertiser Advantages:</strong> Ideal environment for funeral homes, estate planners and florists.</td>
            <td width="178" align="right"><img src="images/digital/contentguide/lh-obits.jpg" alt="Obituaries" width="178" height="154" border="0" /></td>
          </tr>
        </table>
      </div>
    </div>
        </div>   
        <p> </p></td>
      </tr>
    </table>
    <script type="text/javascript">
    var Accordion1 = new Spry.Widget.Accordion("Accordion1",{ useFixedPanelHeights: false, defaultPanel: -1 });
    </script>
    <!-- InstanceEndEditable -->
    <table width="906" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td height="19" align="center" valign="middle" bgcolor="#77307d" class="white" style="font-size:12px"> <a href="contact.html"><img src="images/contactAnAdvert.png" alt="Contact an advertising expert" width="336" height="18" border="0" /></a></td>
        </tr>
      <tr>
        <td height="19" align="center" valign="middle" class="white" style="font-size:12px"><p><br />
        1133 Westchester Avenue, Suite N-110, White Plains, NY 10604   <img src="images/dot.png" width="9" height="9" alt="dot" />  P: 914-694-5500</p>
        <p> </p>
        <p><a href="http://www.gannett.com/" target="_new"><img src="images/Gannett.png" alt="Gannett" width="130" height="18" border="0" /></a><br />
          <br />
          Copyright © 2013<a href="http://www.lohud.com/" target="_new" class="white"> www.lohud.com</a>. All rights reserved.<br />
          Users of this site agree to the <a href="http://www.lohud.com/section/terms" target="_new" class="white">Terms of Service</a>, <a href="http://www.lohud.com/section/privacy" target="_new" class="white">Privacy Notice/Your California Privacy Rights</a>, and <a href="http://www.lohud.com/section/privacy#adchoices&gt;&lt;http://www.lohud.com/section/privacy #adchoices" target="_new" class="white">Ad Choices</a> <br />
        </p></td>
        </tr>
    </table>
    <p> </p>
    <table width="960" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>  </tr>
    </table>
    <p> </p>
    <p> </p>
    <script type="text/javascript">
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    </script>
    </body>
    <!-- InstanceEnd --></html>

    It just wont align left ......This is my style sheet
    @charset "UTF-8";
    /* SpryAccordion.css - version 0.5 - Spry Pre-Release 1.6.1 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    .Accordion {
    overflow: hidden;
    outline:none;
    border-top-width: 0px;
    border-right-width: 0px;
    border-bottom-width: 0px;
    border-left-width: 0px;
    text-align: left;
    .AccordionPanel {
    margin: 0px;
    padding: 0px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    /* This is the selector for the AccordionPanelTab. This container houses
    * the title for the panel. This is also the container that the user clicks
    * on to open a specific panel.
    * The name of the class ("AccordionPanelTab") used in this selector is not necessary
    * to make the widget function. You can use any class name you want to style an
    * accordion panel tab container.
    * NOTE:
    * This rule uses -moz-user-select and -khtml-user-select properties to prevent the
    * user from selecting the text in the AccordionPanelTab. These are proprietary browser
    * properties that only work in Mozilla based browsers (like FireFox) and KHTML based
    * browsers (like Safari), so they will not pass W3C validation. If you want your documents to
    * validate, and don't care if the user can select the text within an AccordionPanelTab,
    * you can safely remove those properties without affecting the functionality of the widget.
    .AccordionPanelTab {
    margin: 0px;
    padding: 2px;
    cursor: pointer;
    -moz-user-select: none;
    -khtml-user-select: none;
    text-align: left;
        padding-left: 10px;
    color: #000000;
    background-color: #c0dff5;
    border-bottom-width: 6px;
    border-bottom-style: solid;
    border-bottom-color: #FFF;
    text-indent: 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    /* This is the selector for a Panel's Content area. It's important to note that
    * you should never put any padding on the panel's content area if you plan to
    * use the Accordions panel animations. Placing a non-zero padding on the content
    * area can cause the accordion to abruptly grow in height while the panels animate.
    * Anyone who styles an Accordion *MUST* specify a height on the Accordion Panel
    * Content container.
    * The name of the class ("AccordionPanelContent") used in this selector is not necessary
    * to make the widget function. You can use any class name you want to style an
    * accordion panel content container.
    .AccordionPanelContent {
    overflow: auto;
    outline:none
    margin: 0px;
    text-align: justify;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    padding-left: 10px;
    padding-right: 10px;
    height: 200px;
    /* This is an example of how to change the appearance of the panel tab that is
    * currently open. The class "AccordionPanelOpen" is programatically added and removed
    * from panels as the user clicks on the tabs within the Accordion.
    .AccordionPanelOpen .AccordionPanelTab {
    background-color: c0dff5;
    color: #666;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    /* This is an example of how to change the appearance of the panel tab as the
    * mouse hovers over it. The class "AccordionPanelTabHover" is programatically added
    * and removed from panel tab containers as the mouse enters and exits the tab container.
    .AccordionPanelTabHover {
    color: #999999;
    background-color: c0dff5;
    .AccordionPanelOpen .AccordionPanelTabHover {
    color: #000000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    /* This is an example of how to change the appearance of all the panel tabs when the
    * Accordion has focus. The "AccordionFocused" class is programatically added and removed
    * whenever the Accordion gains or loses keyboard focus.
    .AccordionFocused .AccordionPanelTab {
    color: #000000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    text-align: left;
    /* This is an example of how to change the appearance of the panel tab that is
    * currently open when the Accordion has focus.
    .AccordionFocused {
    border-top-style: none;
    border-right-style: none;
    border-bottom-style: none;
    border-left-style: none;
    .AccordionPanelOpen
    .AccordionPanelTab {
    background-color: c0dff5;
    color: #666;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    /* Rules for Printing */
    @media print {
      .Accordion {
      overflow: visible !important;
      .AccordionPanelContent {
    display: block !important;
    overflow: visible !important;
    height: auto !important;
    font-size: 12pt;
    padding-left: 10px;
    padding-right: 10px;

  • My final version of a table with row headers and column footers

    This version is superior to the one I posted yesterday
    as it is better designed and responds to changes in
    size correctly. You can also have a header/footer with
    multiple columns/rows.
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.JTableHeader;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.TableColumnModel;
    import java.awt.*;
    import java.awt.event.AdjustmentListener;
    import java.awt.event.AdjustmentEvent;
    import java.awt.event.ComponentListener;
    import java.awt.event.ComponentEvent;
    public class HeaderFooterTablePanel extends JPanel {
        static abstract class AbstractHeaderFooterTableModel extends AbstractTableModel {
            public abstract int getRowHeaderColumnCount();
            public abstract Object getRowHeaderValueAt(int rowIndex,
                                                       int columnIndex);
            public abstract int getFooterRowCount();
            public abstract Object getFooterValueAt(int rowIndex,
                                                    int columnIndex);
        static class RowHeaderTableModel extends AbstractTableModel {
            private AbstractHeaderFooterTableModel abstractHeaderFooterTableModel;
            public RowHeaderTableModel(AbstractHeaderFooterTableModel abstractHeaderFooterTableModel) {
                super();
                this.abstractHeaderFooterTableModel = abstractHeaderFooterTableModel;
            public String getColumnName(int column) {
                return "";
            public int getColumnCount() {
                return abstractHeaderFooterTableModel.getRowHeaderColumnCount();
            public int getRowCount() {
                return abstractHeaderFooterTableModel.getRowCount();
            public Object getValueAt(int rowIndex, int columnIndex) {
                return abstractHeaderFooterTableModel.getRowHeaderValueAt(rowIndex, columnIndex);
        static class ColumnFooterTableModel extends AbstractTableModel {
            private AbstractHeaderFooterTableModel abstractHeaderFooterTableModel;
            public ColumnFooterTableModel(AbstractHeaderFooterTableModel abstractHeaderFooterTableModel) {
                super();
                this.abstractHeaderFooterTableModel = abstractHeaderFooterTableModel;
            public String getColumnName(int column) {
                return "";
            public int getColumnCount() {
                return abstractHeaderFooterTableModel.getColumnCount();
            public int getRowCount() {
                return abstractHeaderFooterTableModel.getFooterRowCount();
            public Object getValueAt(int rowIndex, int columnIndex) {
                return abstractHeaderFooterTableModel.getFooterValueAt(rowIndex, columnIndex);
        static class SyncColumnWidths implements TableColumnModelListener {
            private final JTable centerTable;
            private final JTable footerTable;
            public SyncColumnWidths(JTable centerTable,
                                    JTable footerTable) {
                this.centerTable = centerTable;
                this.footerTable = footerTable;
            // Change the column widths of the footer table when the column widths
            // of the center table change.
            public void columnMarginChanged(ChangeEvent e) {
                TableColumnModel centerTableColumnModel = centerTable.getColumnModel();
                TableColumnModel footerTableColumnModel = footerTable.getColumnModel();
                for (int i = 0; i < centerTableColumnModel.getColumnCount(); i++) {
                    int width = centerTableColumnModel.getColumn(i).getPreferredWidth();
                    footerTableColumnModel.getColumn(i).setPreferredWidth(width);
            public void columnSelectionChanged(ListSelectionEvent e) {
            public void columnAdded(TableColumnModelEvent e) {
            public void columnMoved(TableColumnModelEvent e) {
            public void columnRemoved(TableColumnModelEvent e) {
        private JTable centerTable;
        private JTable rowHeaderTable;
        private JTable columnFooterTable;
        public HeaderFooterTablePanel(AbstractHeaderFooterTableModel abstractHeaderFooterTableModel) {
            super();
            // Create the center, rowHeader and columnFooter tables
            centerTable = new JTable(abstractHeaderFooterTableModel);
            rowHeaderTable = new JTable(new RowHeaderTableModel(abstractHeaderFooterTableModel));
            columnFooterTable = new JTable(new ColumnFooterTableModel(abstractHeaderFooterTableModel));
            // Disabled column re-ordering
            centerTable.getTableHeader().setReorderingAllowed(false);
            columnFooterTable.getTableHeader().setReorderingAllowed(false);
            // We are using scroll panes, so no auto resizing of table.
            centerTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            columnFooterTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            // Only allow the user to change the column widths from the center table, not the
            // columnFooter.
            columnFooterTable.getTableHeader().setResizingAllowed(false);
            // When the center table column widths change, change those in the columnFooter table.
            SyncColumnWidths syncColumnWidths = new SyncColumnWidths(centerTable, columnFooterTable);
            centerTable.getColumnModel().addColumnModelListener(syncColumnWidths);
            // Set the width of the row header before adding it to the center scroll pane
            // as the row header.
            Dimension rowHeaderSize = rowHeaderTable.getPreferredScrollableViewportSize();
            rowHeaderSize.width = rowHeaderTable.getPreferredSize().width;
            rowHeaderTable.setPreferredScrollableViewportSize(rowHeaderSize);
            rowHeaderTable.setRowHeight(centerTable.getRowHeight());
            // Create the center scroll pane and set the row header table as the row header.
            final JScrollPane centerScrollPane = new JScrollPane(centerTable);
            centerScrollPane.setRowHeaderView(rowHeaderTable);
            // We will handle horizontal scrolling with our own scrollbar.
            centerScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            // Now we create the panel to hold the columnFooter table and the horizontal
            // scrollbar.
            final JPanel columnFooterPanel = new JPanel(new BorderLayout());
            // Keep the space below the row header empty.
            Component westGlue = Box.createHorizontalStrut(rowHeaderSize.width);
            // Set height of the columnFooterTable before adding it to the columnFooter scroll pane
            // as the view.
            Dimension columnFooterSize = columnFooterTable.getPreferredScrollableViewportSize();
            columnFooterSize.height = columnFooterTable.getPreferredSize().height;
            columnFooterTable.setPreferredScrollableViewportSize(columnFooterSize);
            columnFooterTable.setRowHeight(centerTable.getRowHeight());
            // The scroll pane which holds the columnFooterTable.
            final JScrollPane columnFooterScrollPane = new JScrollPane(columnFooterTable);
            // We do our own horizontal scrolling and the columnFooterScrollPane never scrolls vertically.
            columnFooterScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            columnFooterScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
            // The scrollbar we use to scroll horizontally.
            final JScrollBar horizontalScrollBar = new JScrollBar(JScrollBar.HORIZONTAL);
            // Sync up all the scrolling. See the method for details.
            syncScrolling(centerScrollPane, horizontalScrollBar, columnFooterScrollPane);
            // Keep the space below the vertical scrollbar empty.
            final JScrollBar verticalScrollBar = centerScrollPane.getVerticalScrollBar();
            int verticalScrollBarWidth = verticalScrollBar.getPreferredSize().width;
            final Component eastGlue = Box.createHorizontalStrut(verticalScrollBarWidth);
            // Set the center viewport size to match to table size
            Dimension centerTablePreferredsize = centerTable.getPreferredSize();
            centerTable.setPreferredScrollableViewportSize(centerTablePreferredsize);
            centerScrollPane.getViewport().setSize(centerTablePreferredsize);
            // The panel that holds the columnFooterTable and the horizontal scrollbar below it.
            final JPanel footerPanel = new JPanel(new BorderLayout());
            footerPanel.add("North", columnFooterScrollPane);
            footerPanel.add("South", horizontalScrollBar);
            footerPanel.setMinimumSize(footerPanel.getPreferredSize());
            // Assemble our columnFooterPanel.
            columnFooterPanel.add("West", westGlue);
            columnFooterPanel.add("Center", footerPanel);
            columnFooterPanel.add("East", eastGlue);
            // This keeps the columnFooterPanel at its minimum height
            JPanel northPanel = new JPanel(new BorderLayout());
            northPanel.add("North", columnFooterPanel);
            // Assemble the center scroll pane, below it the panel containing the column
            // footer panel, and then vertical glue to eat up any available vertical space.
            Box box = Box.createVerticalBox();
            box.add(centerScrollPane);
            box.add(northPanel);
            box.add(Box.createVerticalGlue());
            // Hide/show the eastGlue and the horizontalScrollBar, and recalculate the
            // minimum size of the footerPanel in response to size and visibility changes.
            syncScrollBarVisibility(centerScrollPane, eastGlue, horizontalScrollBar, footerPanel);
            setLayout(new BorderLayout());
            add("Center", box);
        private void syncScrollBarVisibility(final JScrollPane centerScrollPane,
                                             final Component eastGlue,
                                             final JScrollBar horizontalScrollBar,
                                             final JPanel footerPanel) {
            // Hide/show the eastGlue accoring to whether or not the vertical scrollbar
            // is visible.
            centerScrollPane.getVerticalScrollBar().addComponentListener(new ComponentListener() {
                private void checkVisibleStatus(boolean b) {
                    if (eastGlue.isVisible() != b) {
                        eastGlue.setVisible(b);
                public void componentHidden(ComponentEvent e) {
                    checkVisibleStatus(false);
                public void componentMoved(ComponentEvent e) {
                public void componentResized(ComponentEvent e) {
                public void componentShown(ComponentEvent e) {
                    checkVisibleStatus(true);
            // Hide/show the horizontal scrollbar according to whether or not it's needed.
            centerScrollPane.getViewport().addComponentListener(new ComponentListener() {
                public void componentHidden(ComponentEvent e) {
                public void componentMoved(ComponentEvent e) {
                public void componentResized(ComponentEvent e) {
                    int centerScrollPaneWidth = centerScrollPane.getViewport().getSize().width;
                    int centerTablePreferredWidth = centerTable.getPreferredSize().width;
                    if (centerScrollPaneWidth >= centerTablePreferredWidth) {
                        horizontalScrollBar.setVisible(false);
                    } else {
                        horizontalScrollBar.setVisible(true);
                public void componentShown(ComponentEvent e) {
            // Set the minimum size of the footerPanel according to whether or not the
            // horizontalScrollBar is visible.
            horizontalScrollBar.addComponentListener(new ComponentListener() {
                public void componentHidden(ComponentEvent e) {
                    footerPanel.setMinimumSize(footerPanel.getPreferredSize());
                public void componentMoved(ComponentEvent e) {
                public void componentResized(ComponentEvent e) {
                public void componentShown(ComponentEvent e) {
                    footerPanel.setMinimumSize(footerPanel.getPreferredSize());
        private void syncScrolling(final JScrollPane centerScrollPane,
                                   final JScrollBar columnFooterScrollBar,
                                   final JScrollPane columnFooterScrollPane) {
            // When the view of the center scroll pane changes position,
            // change the value of the columnFooterScrollBar to match.
            centerScrollPane.getViewport().addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    int x = ((Component) e.getSource()).getLocation().x * -1;
                    JViewport viewport = (JViewport) e.getSource();
                    int extentWidth = viewport.getExtentSize().width;
                    int viewWidth = viewport.getViewSize().width;
                    int value = Math.max(0, Math.min(viewport.getViewPosition().x, viewWidth - extentWidth));
                    columnFooterScrollBar.setValues(value, extentWidth, 0, viewWidth);
            // When the columnFooterScrollBar (horizontal scroll bar) value changes,
            // change the position of the view in the center scroll pane to match.
            columnFooterScrollBar.addAdjustmentListener(new AdjustmentListener() {
                public void adjustmentValueChanged(AdjustmentEvent e) {
                    JViewport viewport = centerScrollPane.getViewport();
                    viewport.setViewPosition(new Point(e.getValue(), viewport.getViewPosition().y));
                    viewport = columnFooterScrollPane.getViewport();
                    viewport.setViewPosition(new Point(e.getValue(), viewport.getViewPosition().y));
            // When the view of the row header changes position,
            // change the value of the vertical scrollbar of the center
            // scroll pane to match.
            centerScrollPane.getRowHeader().addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    JViewport viewport = (JViewport) e.getSource();
                    int extentHeight = viewport.getExtentSize().height;
                    int viewHeight = viewport.getViewSize().height;
                    int value = Math.max(0, Math.min(viewport.getViewPosition().y, viewHeight - extentHeight));
                    centerScrollPane.getVerticalScrollBar().setValues(value, extentHeight, 0, viewHeight);
        public JTable getCenterTable() {
            return centerTable;
        public JTable getRowHeaderTable() {
            return rowHeaderTable;
        private JTable getColumnFooterTable() {
            return columnFooterTable;
        public static void main(String[] args) {
            AbstractHeaderFooterTableModel tableModel = new AbstractHeaderFooterTableModel() {
                public int getRowCount() {
                    return 25;
                public int getColumnCount() {
                    return 10;
                public Object getValueAt(int rowIndex, int columnIndex) {
                    return "Cell " + rowIndex + ":" + columnIndex;
                public String getColumnName(int column) {
                    return "Column #" + column;
                public Object getRowHeaderValueAt(int rowIndex, int columnIndex) {
                    return "Header " + rowIndex + ":" + columnIndex;
                public int getRowHeaderColumnCount() {
                    return 2;
                public Object getFooterValueAt(int rowIndex, int columnIndex) {
                    return "Footer " + rowIndex + ":" + columnIndex;
                public int getFooterRowCount() {
                    return 3;
            JFrame frame = new JFrame();
            HeaderFooterTablePanel tablePanel = new HeaderFooterTablePanel(tableModel);
            // Render the cells in the row header and footer like the center table column headers.
            TableCellRenderer columnRenderer = tablePanel.getCenterTable().getTableHeader().getDefaultRenderer();
            tablePanel.getRowHeaderTable().setDefaultRenderer(Object.class, columnRenderer);
            tablePanel.getColumnFooterTable().setDefaultRenderer(Object.class, columnRenderer);
            frame.getContentPane().add("Center", tablePanel);
            frame.setSize(300, 300);
            frame.setLocation(300, 200);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
    }

    i was wondering why this topic has NO replies! and then i realized that there is NO question??? so do you have a question, or are you just starting a new thread cuz you feel like it???
    just trying to work out why you didnt post this is the old thread???
    http://forum.java.sun.com/thread.jspa?threadID=5130131&messageID=9466400#9466400

  • My version of a table with row headers and column footers

    I checked the web and some java books over the
    weekend. Didn't find any examples so I'm
    probably not the only one wanting this.
    Here's my version:
    import javax.swing.*;
    import javax.swing.table.JTableHeader;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.TableColumnModel;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    public class RowHeaderColumnFooterTableExample extends JFrame {
        private static class TableDataModel extends AbstractTableModel {
            public TableDataModel() {
                super();
            public String getColumnName(int column) {
                return "Column #" + column;
            public Object getRowHeader(int rowIndex) {
                return "Row #" + rowIndex;
            public Object getRowFooter(int columnIndex) {
                return "Footer #" + columnIndex;
            public int getColumnCount() {
                return 25;
            public int getRowCount() {
                return 25;
            public Object getValueAt(int rowIndex, int columnIndex) {
                return "Cell " + rowIndex + ":" + columnIndex;
        private static class RowHeaderTableModel extends AbstractTableModel {
            private TableDataModel tableDataModel;
            public RowHeaderTableModel(TableDataModel tableDataModel) {
                super();
                this.tableDataModel = tableDataModel;
            public String getColumnName(int column) {
                return "";
            public int getColumnCount() {
                return 1;
            public int getRowCount() {
                return tableDataModel.getRowCount();
            public Object getValueAt(int rowIndex, int columnIndex) {
                return tableDataModel.getRowHeader(rowIndex);
        private static class FooterTableModel extends AbstractTableModel {
            private TableDataModel tableDataModel;
            public FooterTableModel(TableDataModel tableDataModel) {
                super();
                this.tableDataModel = tableDataModel;
            public String getColumnName(int column) {
                return tableDataModel.getRowFooter(column).toString();
            public int getColumnCount() {
                return tableDataModel.getColumnCount();
            public int getRowCount() {
                return 0;
            public Object getValueAt(int rowIndex, int columnIndex) {
                throw new RuntimeException("This model holds column names only - no values.");
        private static class SyncColumnWidths implements TableColumnModelListener {
            private final JTable centerTable;
            private final JTable footerTable;
            public SyncColumnWidths(JTable centerTable,
                                    JTable footerTable) {
                this.centerTable = centerTable;
                this.footerTable = footerTable;
            // Change the column widths of the footer table when the column widths
            // of the center table change.
            public void columnMarginChanged(ChangeEvent e) {
                TableColumnModel centerTableColumnModel = centerTable.getColumnModel();
                TableColumnModel footerTableColumnModel = footerTable.getColumnModel();
                for (int i = 0; i < centerTableColumnModel.getColumnCount(); i++) {
                    int width = centerTableColumnModel.getColumn(i).getPreferredWidth();
                    footerTableColumnModel.getColumn(i).setPreferredWidth(width);
            public void columnSelectionChanged(ListSelectionEvent e) {
            public void columnAdded(TableColumnModelEvent e) {
            public void columnMoved(TableColumnModelEvent e) {
            public void columnRemoved(TableColumnModelEvent e) {
        public RowHeaderColumnFooterTableExample() {
            super();
            // Create the main table data model
            TableDataModel tableDataModel = new TableDataModel();
            // Create the center, rowHeader and footer tables
            final JTable centerTable = new JTable(tableDataModel);
            final JTable rowHeaderTable = new JTable(new RowHeaderTableModel(tableDataModel));
            final JTable footerTable = new JTable(new FooterTableModel(tableDataModel));
            // Render the cells in the row header like the column headers.
            rowHeaderTable.setDefaultRenderer(Object.class, new JTableHeader().getDefaultRenderer());
            // Disabled column re-ordering
            centerTable.getTableHeader().setReorderingAllowed(false);
            footerTable.getTableHeader().setReorderingAllowed(false);
            // We are using scroll panes, so no auto resizing of table.
            centerTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            footerTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            // Only allow the user to change the column widths from the center table, not the
            // footer.
            footerTable.getTableHeader().setResizingAllowed(false);
            // When the center table column widths change, change those in the footer table.
            SyncColumnWidths syncColumnWidths = new SyncColumnWidths(centerTable, footerTable);
            centerTable.getColumnModel().addColumnModelListener(syncColumnWidths);
            // Set the width of the row header before adding it to the center scroll pane
            // as the row header.
            Dimension rowHeaderSize = rowHeaderTable.getPreferredScrollableViewportSize();
            rowHeaderSize.width = rowHeaderTable.getPreferredSize().width;
            rowHeaderTable.setPreferredScrollableViewportSize(rowHeaderSize);
            rowHeaderTable.setRowHeight(centerTable.getRowHeight());
            // Create the center scroll pane and set the row header table as the row header.
            final JScrollPane centerScrollPane = new JScrollPane(centerTable);
            centerScrollPane.setRowHeaderView(rowHeaderTable);
            // We will handle horizontal scrolling with our own scrollbar.
            centerScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            // Now we create the panel to hold the footer table and the horizontal
            // scrollbar.
            JPanel footerPanel = new JPanel(new BorderLayout());
            // Keep the space below the row header empty.
            Component westStrut = Box.createHorizontalStrut(rowHeaderSize.width);
            // Set height of the footer table before adding it to the footer scroll pane
            // as the view.
            Dimension footerSize = footerTable.getPreferredScrollableViewportSize();
            footerSize.height = footerTable.getPreferredSize().height;
            footerTable.setPreferredScrollableViewportSize(footerSize);
            footerTable.setRowHeight(centerTable.getRowHeight());
            // The scroll pane which holds the footer table.
            final JScrollPane footerScrollPane = new JScrollPane(footerTable);
            // We do our own horizontal scrolling and the footer never scrolls vertically.
            footerScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            footerScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
            // The scrollbar we use to scroll horizontally.
            final JScrollBar footerScrollBar = new JScrollBar(JScrollBar.HORIZONTAL);
            // The panel that holds the footer table and the horizontal scrollbar below it.
            JPanel footerCenterPanel = new JPanel(new GridLayout(2, 0));
            footerCenterPanel.add(footerScrollPane);
            footerCenterPanel.add(footerScrollBar);
            // Sync up all the scrolling. See the method for details.
            syncScrolling(centerScrollPane, footerScrollBar, footerScrollPane);
            // Keep the space below the vertical scrollbar empty.
            JScrollBar verticalScrollBar = centerScrollPane.getVerticalScrollBar();
            int verticalScrollBarWidth = verticalScrollBar.getPreferredSize().width;
            Component eastStrut = Box.createHorizontalStrut(verticalScrollBarWidth);
            // Assemble our footer Panel.
            footerPanel.add("West", westStrut);
            footerPanel.add("Center", footerCenterPanel);
            footerPanel.add("East", eastStrut);
            // Final assembly.
            Container contentPane = getContentPane();
            contentPane.setLayout(new BorderLayout());
            contentPane.add("Center", centerScrollPane);
            contentPane.add("South", footerPanel);
        private void syncScrolling(final JScrollPane centerScrollPane,
                                   final JScrollBar footerScrollBar,
                                   final JScrollPane footerScrollPane) {
            // When the view of the center scroll pane changes position,
            // change the value of the footer scrollbar to match.
            centerScrollPane.getViewport().addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    int x = ((Component) e.getSource()).getLocation().x * -1;
                    JViewport viewport = (JViewport) e.getSource();
                    int extentWidth = viewport.getExtentSize().width;
                    int viewWidth = viewport.getViewSize().width;
                    int value = Math.max(0, Math.min(viewport.getViewPosition().x, viewWidth - extentWidth));
                    footerScrollBar.setValues(value, extentWidth, 0, viewWidth);
            // When the footer scroll bar (horizontal scroll bar) value changes,
            // change the position of the view in the center scroll pane to match.
            footerScrollBar.addAdjustmentListener(new AdjustmentListener() {
                public void adjustmentValueChanged(AdjustmentEvent e) {
                    JViewport viewport = centerScrollPane.getViewport();
                    viewport.setViewPosition(new Point(e.getValue(), viewport.getViewPosition().y));
                    viewport = footerScrollPane.getViewport();
                    viewport.setViewPosition(new Point(e.getValue(), viewport.getViewPosition().y));
            // When the view of the row header changes position,
            // change the value of the vertical scrollbar of the center
            // scroll pane to match.
            centerScrollPane.getRowHeader().addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    JViewport viewport = (JViewport) e.getSource();
                    int extentHeight = viewport.getExtentSize().height;
                    int viewHeight = viewport.getViewSize().height;
                    int value = Math.max(0, Math.min(viewport.getViewPosition().y, viewHeight - extentHeight));
                    centerScrollPane.getVerticalScrollBar().setValues(value, extentHeight, 0, viewHeight);
        public static void main(String[] args) {
            RowHeaderColumnFooterTableExample rowHeaderColumnFooterTableExample = new RowHeaderColumnFooterTableExample();
            rowHeaderColumnFooterTableExample.setSize(300, 300);
            rowHeaderColumnFooterTableExample.setLocation(300, 200);
            rowHeaderColumnFooterTableExample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            rowHeaderColumnFooterTableExample.setVisible(true);
    }null
    Message was edited by:
    NY_Consultant
    Message was edited by:
    NY_Consultant

    Just for reference, you can also check here for a RowHeader example
    http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples1.html
    and here for a column footer (or total row)
    http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples3.html
    as well as numerous other useful ideas. The source can also be found at
    http://www.physci.org/codes/tame/
    though without the screen shots.

Maybe you are looking for