How to freeze JTable first row?

Hello,
I have created on Application which shows data in JTable as per scrollBar position. It loads the data at runtime from Database and shows only visible rows.
For eg. I have 1000 rows in Database and no. of visible rows are only 20, then it will set start index and end index depending on ScrollBar value and then displays only 20 rows (But for user it looks like all 1000 rows are displayed).
Now the problem is, I want the the first row of the JTable should always remain there irrespective of scrollBar postion and the data it is showing. That first row is not a part of data. It will display some other info (eg. Any Data Statistic) and will have special renderer for it.
Can you tell me how to achieve this? Can you explain me with some source code?
Do reply.
Regards,
Sheetal

I have gone through the links, but in that two Table are used.I haven't gone through the code, but this is the usual way of achieving the kind of result you require.
But If I want to use only one table then how can I do it?If you succeed, please be sure to post the code here for benefit of all, as AFAIK it hasn't been done before.
Is there any function to fix any given row number?If you mean, is there a method of JTable for freezing any arbitrary row, I think you can answer your own question by going throigh the [JTable API|http://java.sun.com/javase/6/docs/api/javax/swing/JTable.html].
db
david_david write:
check reply 8 here.Also reply 11.
Edited by: Darryl.Burke

Similar Messages

  • How to include the first row of detail in every xquery transformed xml?

    I am dealing with a XML file,where i need to publish to different BS.
    First node will be a common node node which contains vital info,second node goes to one BS and third goes to another BS.
    *<header></header>*
    *<details></details> (they are unbounded, but the first detail tag which comes in the input file is a mandatory tag in such a way that it needs to be included in every transformed message)*
    *<trailer></trailer>*
    We need to apply x query transformation on it in such a way:
    *</header></header>*
    *<1st detail></1st detail>*
    *<detail></detail> (2nd row of detail in input file)* -------------------------> Goes to BS1
    *<trailer></trailer>..*
    *<header></header>*
    *<1st detail></1st detail>*
    *<detail></detail> (3rd row of detail in input file)* ----------------------------->Goes to BS2
    *<trailer></trailer>*..
    And so on.
    Now, the problem is how to include the first row( *1st detail* ) of detail in every xquery transformed xml?

    are you looping of this input with a for each?
    /yourdata/details[1] should return always the first detail element.
    or before the for each do an assing of this first detail element to "generic_details_var"
    and use this var in every looping iteration (in an assign or as input for xquery)

  • How to freeze column and row headers of a table

    How to freeze column and row headers of a table in jsp and javascript. An example is available in
    http://www.massless.org/_tests/grid1/ pls help to find a solutionj
    Thanks in anticipation
    Sreejesh

    At least I don't stop you from that. I also don't see any benefits in this topic.
    Success.

  • How to keep the first row fixed in a JTable, with sorting, and bellow the headers ?

    I am trying to change the following code so then the fixed rows will stay on top(but below the headers!), but when I change getContentPane().add(fixedScroll, BorderLayout.SOUTH); to getContentPane().add(fixedScroll, BorderLayout.NORTH); it stays above the headers. How can I put the first rows on top, but below the headers ? Thanks.
    import java.awt.*; 
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import javax.swing.event.*;
    * @version 1.0 03/05/99
    public class FixedRowExample extends JFrame {
      Object[][] data;
      Object[] column;
      JTable fixedTable,table;
      private int FIXED_NUM = 2;
      public FixedRowExample() {
        super( "Fixed Row Example" );
        data =  new Object[][]{
            {      "a","","","","",""},
            {      "","b","","","",""},
            {      "","","c","","",""},
            {      "","","","d","",""},
            {      "","","","","e",""},
            {      "","","","","","f"},
            {"fixed1","","","","","","",""},
            {"fixed2","","","","","","",""}};
        column = new Object[]{"A","B","C","D","E","F"};
        AbstractTableModel    model = new AbstractTableModel() {
          public int getColumnCount() { return column.length; }
          public int getRowCount() { return data.length - FIXED_NUM; }
          public String getColumnName(int col) {
           return (String)column[col];
          public Object getValueAt(int row, int col) {
            return data[row][col];
          public void setValueAt(Object obj, int row, int col) {
            data[row][col] = obj;
          public boolean CellEditable(int row, int col) {
            return true;
        AbstractTableModel fixedModel = new AbstractTableModel() {     
          public int getColumnCount() { return column.length; }
          public int getRowCount() { return FIXED_NUM; }
          public Object getValueAt(int row, int col) {
            return data[row + (data.length - FIXED_NUM)][col];
        table = new JTable( model );
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        table.setAutoCreateRowSorter(true);
        fixedTable = new JTable( fixedModel );
        fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        fixedTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        JScrollPane scroll      = new JScrollPane( table );
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        JScrollPane fixedScroll = new JScrollPane( fixedTable ) {
          public void setColumnHeaderView(Component view) {} // work around
                                                 // fixedScroll.setColumnHeader(null);
        fixedScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        JScrollBar bar = fixedScroll.getVerticalScrollBar();
        JScrollBar dummyBar = new JScrollBar() {
          public void paint(Graphics g) {}
        dummyBar.setPreferredSize(bar.getPreferredSize());
        fixedScroll.setVerticalScrollBar(dummyBar);
        final JScrollBar bar1 = scroll.getHorizontalScrollBar();
        JScrollBar bar2 = fixedScroll.getHorizontalScrollBar();
        bar2.addAdjustmentListener(new AdjustmentListener() {
          public void adjustmentValueChanged(AdjustmentEvent e) {
            bar1.setValue(e.getValue());
        scroll.setPreferredSize(new Dimension(400, 100));
        fixedScroll.setPreferredSize(new Dimension(400, 52));  // Hmm...
        getContentPane().add(     scroll, BorderLayout.CENTER);
        getContentPane().add(fixedScroll, BorderLayout.SOUTH);   
      public static void main(String[] args) {
        FixedRowExample frame = new FixedRowExample();
        frame.addWindowListener( new WindowAdapter() {
          public void windowClosing( WindowEvent e ) {
            System.exit(0);
        frame.pack();
        frame.setVisible(true);

    Sorry, this code missed a very important line:
    table.setAutoCreateRowSorter(true);
    So you meant:
    Object[][] header;//class atribute
    header=new Object[][]{//in the constructor
                { "h","i","j","k","l","m"},
                { "h","i","j","k","l","m"}
    public Object getValueAt(int row, int col) {//in the TableModel
            if (row==0){
                return header[row][col];
            else {
                return data[row][col];
    I tried, but when I sort, the first row get sorted with the rest.

  • How to highlight the first row of a table

    When entering the form, how do I get the first row of the table to be highlighted when it has not been selected yet? There is already data in the table. Thanks.
    Allyson

    Any ideas on what would cause this NOT to work? I added this row right after the table is created and populated and it is still not highlighted when I enter the form. The snippet of code that does this is:
    MyTableModel modelS = (MyTableModel)dataModel.get("S");
    jTable1 = new JTable(modelS);
    jTable1.setRowSelectionInterval(0,0);MyTableModel is this:
    class MyTableModel extends DefaultTableModel {
      public MyTableModel(Object[] columnNames, int numRows) {
        super(columnNames, numRows);
      public boolean isCellEditable(int row, int column) {
        if (TableKey == 'S') {
          if (column == 6) {
            return false;
        if (TableKey == 'O') {
          if (column == 0 || column == 4 || column == 5) {
            return false;
        if (TableKey == 'P') {
          return false;
      return true;
    }Can anyone help? Thanks.
    Allyson

  • How to skip the first row in Text file (in Sql Loader)

    Hi All,
    How to say the control file to skip the first row of the text file..
    i just going this example
    this is my text file:
    01308201222455038130820122245503813082012224550382
    1090358 474661834012245503813082012 0075 0 00000000000 000000000 00000130820120000000000000000 136.84 -833.3911082012 000000 000 009035847466183 090358 47466183 0015007514300000970001430000097700BH1150274792012081320120811201208122012-08-11-22.45.50.38369899999.0075LIQJGL17
    Control file:
    OPTIONS
    DIRECT = TRUE ,
    PARALLEL = FALSE ,
    SKIP = 1,
    ERRORS = 0
    UNRECOVERABLE
    LOAD DATA
    INFILE      <"FILE_DIR">
    BADFILE <"FILE_DIR">
    INSERT
    INTO TABLE DAILY_TRANSACTION
    WHEN (1:1)='D'
    TRAILING NULLCOLS
    Above the Eaxmple text file i need to Skip the first row which is
    01308201222455038130820122245503813082012224550382
    please can anyone suggest me is this correct?
    if not please correct me please
    since two days i been serching but i didn't get any thing
    Thank's
    Edited by: Lavanya on 24-Sep-2012 00:51

    Lavanya wrote:
    Hi Jeneesh,
    Thank you for your prompt replay
    I didn't try to load this control file
    And i need one more question
    I have Text file in my Machine which Contains very huge data so i was wrote one control file for that, and i got FTP connection also as well as.
    My question is firstly I need to PUT the Text file Into Unix Server isn't?
    so when i trying to put the text file into unix it's giving an error
    ftp>put c:/abc.txt
    Not connectedYou haven't succesfully made your FTP connection to the server.
    e.g.
    c:\>ftp
    ftp> o testserver
    Connected to testserver.mycompany.com.
    220 testserver FTP server ready.
    User (testserver.mycompany.com:(none)): myuser
    331 Password required for myuser.
    Password:
    230 User myuser logged in.
    ftp>then you can use FTP to put your data to the server. Remember, if you are transferring a text file from a windows based operating system to a unix server you need to put it in ASCII mode...
    ftp> ascii
    200 Type set to A.
    ftp>which will automatically convert the windows CR/LF pairs to the single LF character used by unix.

  • How to ignore the first row  in sender file

    I would like to ignore the first row in each file in the sender channel - how can i do it?

    Hi
    Check this,
    As he said give Document Offset = 1
    http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
    Also check this forum
    Re: Supress Column Heading - File Content Conversion in Sender Adapter
    Thanks,
    Prakash

  • How to disable the first row of an ALV Grid?

    Hi All,
          I am working on a module pool programme. I am displaying ALV grid. I have to give some default values in the first row and disable it. I have to disable the third column and fourth row value. How can i achieve this?
    Help will be appreciated.
    Thanks,
    Ibrahim.

    here is the code i have written....but its not working...
    TYPES : BEGIN OF tp_grid,
            fname(25)   TYPE c,
            reqd,
            seqno       TYPE n,
            tl_styl TYPE lvc_t_styl,
            edit,
            END OF tp_grid.
    DATA : wl_styl TYPE lvc_s_styl.
    DATA : wl_layout TYPE lvc_s_layo.
    DATA : lt_celltab TYPE lvc_t_styl.
      READ TABLE tl_grid INTO wl_grid INDEX 1.
      wl_styl-fieldname = 'TAG NUMBER'.
      wl_styl-style = cl_gui_alv_grid=>mc_style_disabled.
      INSERT wl_styl INTO TABLE lt_celltab.
      INSERT LINES OF lt_celltab INTO  wl_grid-tl_styl index 1.
      MODIFY tl_grid INDEX 1 FROM wl_grid.
      wl_layout-stylefname = 'TL_STYL'.
      CALL METHOD l_initgrid->set_table_for_first_display
        EXPORTING
          is_layout                     = wl_layout
        CHANGING
          it_outtab                     = tl_grid
          it_fieldcatalog               = tl_init_fcat
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
    ENDFORM.                    " display_initgrid
    Help will be appreciated....
    Thanks,
    Ibrahim

  • How to set the first row as selected in single selection of table

    when the page renders how do we make the first row as selected for single selection in a table.
    Thansk a lot for your help

    set the selection Attribute's value to 'Y' for the first row. Thats enough.
    eg;
    Row row=vo.first();
    row.setAttribute("SelectionAttribute", "Y");
    --Prasanna                                                                                                                                                                                                                                                                                                                                           

  • How to use the first row function value for the rest of records

    Hi all,
    I am having a select statement like this. We are calling function enabled for each row. So it is taking
    time. As per our bussiness logic, we can use what the function 'enabled' will give for the first row to
    other rows also. so that we can avoid calling the function 'enabled' next row onwars.
    Before
    SELECT
    decode(enabled(col1, col2, col3),'TRUE','xxx', col4),
    decode(enabled(col1, col2, col3),'TRUE','xxx', col5),
    decode(enabled(col1, col2, col3),'TRUE','xxx', col6),
    decode(enabled(col1, col2, col3),'TRUE','xxx', col7),
    decode(enabled(col1, col2, col3),'TRUE','xxx', col8),
    from
    table1 t1, table2 t2 where t1.col1 = t2.col1
    After
    SELECT
    decode(enabled(col1, col2, col3),'TRUE','xxx', col4),
    decode('true/false','TRUE','xxx', col5), --Here 'true/false' is the first row value after calling the function 'enabled'
    decode('true/false','TRUE','xxx', col6),
    decode('true/false','TRUE','xxx', col7),
    decode('true/false','TRUE','xxx', col8),
    from
    table1 t1, table2 t2 where t1.col1 = t2.col1
    Any thoughts on this, how to implement this logic
    Thanks,
    Pal

    It's not clear where col1, col2, col3... etc. come from, so I've assumed they're in table1.
    with table1_X as (select enabled(col1, col2, col3) as enbl
                            ,col1, col2, col3, col4, col5, col6, col7, col8
                      from   table1)
    SELECT decode(t1.enbl,'TRUE','xxx', col4)
          ,decode(t1.enbl,'TRUE','xxx', col5)
          ,decode(t1.enbl,'TRUE','xxx', col6),
          ,decode(t1.enbl,'TRUE','xxx', col7),
          ,decode(t1.enbl,'TRUE','xxx', col8),
    from   table1_x t1 join table2 t2 on (t1.col1 = t2.col1)p.s. you'd be better leaving out the enabled function altogether and incorporating the logic of the function directly in the SQL, and then you would be avoiding any context switching which will clearly impact performance on any large amount of data.
    Edited by: BluShadow on 14-May-2013 08:26

  • How to create a first row in crystal report as opening balance which contains two columns with debit and credit

    I have created a crystal report with credit and debit column. Balance column created on the report. Report running with cummulative balance. THis report contain an option for date range. If i filtered this report its not showing the actual balance. I need
    a first row to indicate previous balance as opening balance in this report.  And following is the formula for balance column.
    Whileprintingrecords;
    Shared Numbervar balance;
    Shared Numbervar display;
    balance:={@debit}-{@credit};
    display:=display+balance;
    display

    As this question is out of the T-SQL queue, thus I would suggest you consult Crystal Report questions to the correct forums.
    C#
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=csharpgeneral
    VB
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=vbgeneral
    people there have more knowledge on Crystal Report.

  • How to ignore the first row in a csv import

    Hello
    This is the file we want to  add to the datamodel:
    https://www.mediafire.com/?a9xrwrwu79whu18
    (BTW this is the csv output from a neat & free software called Jstock)
    Here is an image of the problem:
    As you can see they add automatically a timestamp in the A1 cell ruining the possibility of a clean import.
    Can anyone help with a query to fix this and get the real headers?

    Hi NicoPer,
    To follow your M code. You have  this lines  #"First Row as Header" = Table.PromoteHeaders(Source).
    This mean you use first line ( the line include "timestamp=1415926728041" ) to make
    table header. So you no need to use Table.Skip function. You just use one more Table.PromoteHeaders to make second line to your table header. Below is your code:
    let
        Source = Csv.Document(File.Contents("C:\PATH\JSTOCK.csv"),null,null,null,1252),
        #"First Row as Header" = Table.PromoteHeaders(Source),
        #"Changed Type" = Table.TransformColumnTypes(#"First Row as Header",{{"timestamp=1415926728041", type text}}),
        FirstRowAsHeader = Table.PromoteHeaders(#"Changed Type")
    in
        FirstRowAsHeader
    Regards,

  • How to make the first row  selected before the display of ALV grid

    Hello Experts,
    I created a ALV grid using custom container in a screen . Now i want do the follwing:
    1. i want that, the  <b>first line must be selected before the display of ALV.</b>
    2. I have selection buttons . But i dont want the multiselect button and the  
        standard  toolbar in the ALV grid.
    Could any one please help me regarding the above?
    Thanks & Regards
    Sudhansu

    can u pls explain in more details with an example?
    I am telling u the scenario.
    1. i have a screen(Modal dialog Box)  containing ALV grid with selection buttons for each row  (top part) and a subscreen(second part).
          Now when i click on a selection button, it will display the corresponding values in the subscreen.
        When this screen will display for the first time , then first row of the ALV grid should be selected and the corresponding values should be displayed in  the subscreen.
    i   wrote the following code in the PAI. But when i select a record its not triggering the PAI.
    DATA:
         gi_index_rows TYPE lvc_t_row, " Internal table for indexes of selected rows
         g_selected_row LIKE lvc_s_row, " Information about 1 row
         l_lines TYPE i.
      CLEAR g_wa_vdmeko.
    *get selected row
      CALL METHOD g_alv_grid->get_selected_rows
        IMPORTING
          et_index_rows = gi_index_rows.
      DESCRIBE TABLE gi_index_rows LINES l_lines.
      LOOP AT gi_index_rows INTO g_selected_row.
        READ TABLE g_int_vdmeko INDEX g_selected_row-index INTO g_wa_vdmeko.
        SELECT SINGLE  *
               FROM vdmepov
               WHERE bukrs = g_wa_vdmeko-bukrs AND
                     styp  = g_wa_vdmeko-styp  AND
                     sbez  = g_wa_vdmeko-sbez  AND
                     svym  = g_wa_vdmeko-svym  AND
                     svnr  = g_wa_vdmeko-svnr.
      ENDLOOP.
    I am displayinng the ALV using method "set_alv_for_first_display".
    Please help if u have any idea..................
    Thanks
    Sudhansu

  • How to select the first row for each pair of values ?

    Hi guys, am hoping someone can help me here.
    If I have 4 tables - Building, Dept, Emp, Text
    B D E T
    A 1 Z blah1
    A 1 X blah2
    A 1 W blah3
    A 2 V blah4
    A 2 G blah5
    A 2 H blah6
    B 1 K blah7
    B 1 L blah8
    B 2 E blah9
    B 2 F blah0
    I need a query that will bring back the first bit of text for each pair of building and dept records.
    So the results I would get would be
    A 1 blah1
    A 2 blah4
    B 1 blah7
    B 2 blah9
    blah2 wouldnt be returned, because we have already had a record from the Building A, dept 1 pairing.
    Likewise we wouldnt get blah5 because we have already had a record from the Building A, dept 2 pairing.
    Can this be done in 1 query??
    Thanks all.
    Message was edited by:
    Scott Hillier

    here you go
    SQL> drop table t;
    Table dropped.
    SQL> create table t(B char(1), D integer, E char(1), T varchar2(5));
    Table created.
    SQL> insert into t values('A', 1, 'Z', 'blah1');
    1 row created.
    SQL> insert into t values('A', 1, 'X', 'blah2');
    1 row created.
    SQL> insert into t values('A', 1, 'W', 'blah3');
    1 row created.
    SQL> insert into t values('A', 2, 'V', 'blah4');
    1 row created.
    SQL> insert into t values('A', 2, 'G', 'blah5');
    1 row created.
    SQL> insert into t values('A', 2, 'H', 'blah6');
    1 row created.
    SQL> insert into t values('B', 1, 'K', 'blah7');
    1 row created.
    SQL> insert into t values('B', 1, 'L', 'blah8');
    1 row created.
    SQL> insert into t values('B', 2, 'E', 'blah9');
    1 row created.
    SQL> insert into t values('B', 2, 'F', 'blah0');
    1 row created.
    SQL> select b,d,t
      2    from (
      3  select row_number() over(partition by b, d order by b,d) rno,b,d,t
      4    from t)
      5   where rno = 1;
    B          D T
    A          1 blah1
    A          2 blah4
    B          1 blah7
    B          2 blah9karthick
    http://karthickarp.blogspot.com/

  • How to get first row in query output

    HI,
    query:
    select a.LOGIN,s2diq(a.created_t)
    from service_t a,account_t b
    where a.ACCOUNT_OBJ_ID0=b.POID_ID0
    and b.ACCOUNT_NO='80161001'
    and b.status =10100
    output of query:
    80161001     6/25/2011 2:00:43 AM
    80161001_1     10/16/2011 9:10:44 PM
    80161001_2     10/16/2011 9:36:02 PM
    80161001_3     10/16/2011 10:23:07 PM
    80161001_4     10/17/2011 9:41:34 PM
    80161001_5     10/17/2011 9:45:59 PM
    80161001_6     10/17/2011 10:26:27 PM
    how to get only first row only in quaery:
    Thanks
    Prakash
    Edited by: prakashdba on Apr 7, 2009 3:09 AM

    Then how about this
    select * from
         (select a.LOGIN,s2diq(a.created_t) secondcolumn
         from service_t a,account_t b
         where a.ACCOUNT_OBJ_ID0=b.POID_ID0
         and b.ACCOUNT_NO='80161001'
         and b.status =10100
         order by COLUMN_NAME) A
    where rownum=1;

Maybe you are looking for

  • Simple G5 Questions but I don't know the answer to them

    I am a PC guy. I have always been, but I decided on getting an Mac to test one out. So I bought a used one. I bought a Power Mac G5. It has the dual 2.5Ghz, with 2Gb of ram. When I got it, it wouldn't do anything. Took the side of the case off and fo

  • W540 miniDP to HDMI

    Hi all, I'm facing hard time trying to connect my w540 to the toshiba smart tv via the miniDP port.  I ordered the original Lenovo miniDP-HDMI adapter, yet it seems that neither the TV nor the laptop recognizes each other. Anybody got an idea? Thanks

  • Finding source codes and page rankings

    I have just got the new upgraded Firefox, and I would like to know how to find two things in this browser: (1) the source codes for any site I visit, and (2) the page rankings for any site I visit, Or aren't these available on Firefox? Roger

  • Billing Document- Condition types- report -reg

    Hi experts, 1. I see a billing document in VF03, 2. I select a line item and click on pricing button. 3. I get all the pricing condition types and the corresponding values against them.        Pls let me know how do I get the values of "Net Value Bef

  • How to cancel my accidently purchase game

    Hi may i know how to cancel my accidently purchase game? how to refund?