JTable & record display

Dear All,
Right now, i am hardcoding the values for the JTable display. but i want it to be populated from my resultset.....how to do that??? exact "code" for this alone is most appreciated...
right now,
final Object[][] data = {{"Mary", "Campione", "Snowboarding","1","2","3"},{"Alison", "Huml", "Rowing","4","5","6"},{"Kathy", "Walrath","Chasing","7","8","9"}};
but i want it to be done in dynamic filling.........................
My resultset is like this...
     ResultSet resultset = stmt.executeQuery("select count(*) from empdetails;");
I can retrieve the values from the above resultset. but how to display it in the JTable dynamically????
waiting for the reply,
Sakthivel S.

Have a look at this tutorial :
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
And also look at DefaultTableModel and AbstractTableModel.
If you can get the values from the resultSet you have to store them in an arrayList or Vector of row objects and insert them into your tableModel.
HTH

Similar Messages

  • JTable not displaying column Heads

    The following JPanel was constructed using JBuilder 7 (a horrendous piece of software) and is in GridBagLayout. I'm attempting to display the contents of a table using JTable, and whilst it displays the rows it doesn't display the columnHeads! What am I doing wrong?
    import java.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import java.text.*;
    public class BeginTask extends JPanel implements ActionListener{
    private boolean dbupdated;
    private MainFrame main;
    private JLabel jLabel1 = new JLabel();
    private JLabel jLabel2 = new JLabel();
    private JTable jTable1 = new JTable();
    private JButton jButton1 = new JButton();
    private JButton jButton2 = new JButton();
    private GridBagLayout gridBagLayout1 = new GridBagLayout();
    private Connection connection;
    private String url = "jdbc:odbc:bapers";
    private String username = "";
    private String password = "";
    public BeginTask(MainFrame ma) throws SQLException{
    main = ma;
    logon();
    drawTable();
    try {
    jbInit();
    catch(Exception ex) {
    ex.printStackTrace();
    void jbInit() throws Exception {
    jLabel1.setFont(new java.awt.Font("Dialog", 1, 18));
    jLabel1.setText("Begin Task");
    this.setLayout(gridBagLayout1);
    jLabel2.setText("Select Task, and press OK.");
    jButton1.setText("OK");
    jButton2.setText("CANCEL");
    jButton1.addActionListener(this);
    jButton2.addActionListener(this);
    this.add(jButton1, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0
    ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(12, 117, 14, 0), 94, 8));
    this.add(jButton2, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0
    ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(19, 43, 7, 119), 62, 8));
    this.add(jTable1, new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0
    ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(12, 25, 0, 22), 522, 281));
    this.add(jLabel2, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0
    ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 181, 0, 226), 13, 6));
    this.add(jLabel1, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0
    ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(29, 202, 0, 251), 19, 17));
    public void actionPerformed(ActionEvent e) {
    if (e.getSource() == jButton1) {
    if (dbupdated == true)
    JOptionPane.showMessageDialog(null, "The database has been updated to show that the user has begun the task selected.");
    else if (dbupdated == false)
    JOptionPane.showMessageDialog(null, "The database has not been updated.");
    else if (e.getSource() == jButton2) {
    BapProcMain bpm = new BapProcMain(main);
    main.redisplay(bpm);
    public void logon() {
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    connection = DriverManager.getConnection(url, username, password);
    catch (ClassNotFoundException cnfex) {
    System.err.println("Failed to load the JDBC/ODBC driver.");
    cnfex.printStackTrace();
    System.exit(1);
    catch (SQLException sqlex) {
    System.err.println("Unable to connect (SQL error)");
    sqlex.printStackTrace();
    public void logoff() {
    if (connection == null) return;
    try { connection.close(); }
    catch (SQLException sqlex) {
    System.err.println("Unable to disconnect (SQL error)");
    public void drawTable() {
    Statement stmt;
    ResultSet rset;
    try {
    String query = "SELECT * FROM SpecificTask";
    stmt = connection.createStatement();
    rset = stmt.executeQuery(query);
    displayResultSet(rset);
    stmt.close();
    catch (SQLException sqlex) {
    sqlex.printStackTrace();
    private void displayResultSet(ResultSet rs) throws SQLException {
    // position to first record
    boolean moreRecords = rs.next();
    // if there are no records, display a message
    if (! moreRecords){
    JOptionPane.showMessageDialog (this, "No Specific Tasks to begin.");
    return;
    Vector columnHeads = new Vector();
    Vector rows = new Vector();
    try {
    // get column heads
    ResultSetMetaData rsmd = rs.getMetaData();
    for (int i = 1; i <= rsmd.getColumnCount(); ++i)
    columnHeads.addElement (rsmd.getColumnName(i));
    //get row data
    // System.out.println("Got this far. Check getNextRow(...)");
    do { rows.addElement(getNextRow(rs, rsmd)); }
    while (rs.next());
    // display table with ResultSet contents
    jTable1 = new JTable (rows, columnHeads);
    JScrollPane scroller = new JScrollPane(jTable1);
    // validate();
    catch (SQLException sqlex) {
    sqlex.printStackTrace();
    private Vector getNextRow (ResultSet rs, ResultSetMetaData rsmd) throws SQLException {
    Vector currentRow = new Vector();
    for (int i = 1; i <= rsmd.getColumnCount(); ++ i)
    switch (rsmd.getColumnType(i)) {
    case Types.VARCHAR:
    currentRow.addElement(rs.getString(i));
    break;
    case Types.INTEGER:
    currentRow.addElement(new Long (rs.getLong(i) ) );
    break;
    default: System.out.println ("Type was: " +
    rsmd.getColumnTypeName(i));
    return currentRow;
    }

    The table header is shown automatically when you add the table to a scrollpane and then display the scrollpane in a panel. You use the following code to build the table/scrollpane:
    // display table with ResultSet contents
    jTable1 = new JTable (rows, columnHeads);
    JScrollPane scroller = new JScrollPane(jTable1);
    but, you add the table to your panel NOT the scrollpane:
    this.add(jTable1, new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0
    ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(12, 25, 0, 22), 522, 281));
    You should be adding the scrollpane to you panel.

  • Change number of record displayed for a single item alone

    Hi,
    I have a single data block with few items. Is it possible to make one item in the block as non-database item and make the display of record in the item alone to show multiple lines.
    i.e. All other items in the Data block shows single record, whereas this particular item should shows 10 records.
    Is this achievable?
    Or should i have to put that item in a separate data block and choose the data block property to "Number of records displayed" as 10?
    Thanks,
    Yuvaraaj.

    983448 wrote:
    Hi,
    I have a single data block with few items. Is it possible to make one item in the block as non-database item and make the display of record in the item alone to show multiple lines.
    i.e. All other items in the Data block shows single record, whereas this particular item should shows 10 records.Yes you can. But i will say re-check your design.
    Hamid
    Mark correct/helpful to help others to get right answer(s).*

  • How to set the number of records displayed at run time

    Is it possible to set the number of records displayed block property at run time? The built-in 'GET_BLOCK_PROPERTY' can retrieve the number of RECORDS_DISPLAYED. But I can't find SET_BLOCK_PROPERTY to set this property. Is there anyway I can set this property programmatically? Thanks for any suggestions!

    Bookmark Go to End
    goal: How to vary the number of records displayed in a block
    programmatically
    fact: Oracle Forms Developer
    fix:
    Block property 'Number of Records Displayed' can not be changed during runtime
    using SET_BLOCK_PROPERTY. However, it is still possible programmatically change
    the visual appearance of the form so that it creates effect of changing this
    property. To achieve such an effect follow these steps:
    1. in Forms Builder, in the multirecord block define the new set of items.
    The simplest way is to copy/paste the original item and rename created item.
    2. set properties of these new items so that they are the same as the properties
    of the original items. If these new items were copied from original items
    then properties are already the same. Modify following properties
    'Database item' on new items to value 'No'
    'Synchronize with item' to the value of the original item
    'Number of Items Displayed' to desired value.
    'Visible' to 'No'
    In other words, these new items are mirrors of original items.
    3. code event, which is meant to trigger the change in block appearance.
    This code should use SET_ITEM_PROPERTY built-in to set properties
    like 'VISIBLE', 'ENABLED', 'NAVIGABLE', 'UPDATE_ALLOWED' and others
    to desired value for items which are about to be displayed, then
    move cursor to one of these just displayed items with GO_ITEM built-in
    and then hide the previously displayed items.
    Example:
    Assume that the block is built on SCOTT.DEPT schema. Following will
    change the set of displayed items
    set_item_property('dept.mdeptno',visible,property_true);
    set_item_property('dept.mdname',visible,property_true);
    set_item_property('dept.mloc',visible,property_true);
    set_item_property('dept.mdeptno',enabled,property_true);
    set_item_property('dept.mdname',enabled,property_true);
    set_item_property('dept.mloc',enabled,property_true);
    set_item_property('dept.mdeptno',update_allowed,property_true);
    set_item_property('dept.mdname',update_allowed,property_true);
    set_item_property('dept.mloc',update_allowed,property_true);
    set_item_property('dept.mdeptno',navigable,property_true);
    set_item_property('dept.mdname',navigable,property_true);
    set_item_property('dept.mloc',navigable,property_true);
    go_item('dept.mdeptno');
    set_item_property('dept.deptno',visible,property_false);
    set_item_property('dept.dname',visible,property_false);
    set_item_property('dept.loc',visible,property_false);
    Regards,
    Monica

  • Rows Per Page doesn't affect the number of records displayed

    I just updated from 3.2 to 4.0 this morning. When I change the Rows Per Page value in the action menu the report doesn't change and the number of records displayed stays at 10. The report has ~6000 records. I edited the report attributes and add the rows selector to the IR search bar. This doesn't change the behavior either. I noticed that if I change the rows per page in the action menu then the drop down select list is updated, but the report still doesn't change from 10. I tried paging to the next set of results and it still remains at 10.
    Has anyone else experienced this problem?
    Tony

    Yes, Tony, I've seen this in several versions of APEX. In most cases, simply starting a new session was enough to force APEX to refresh the page and grab the new set of pagination directives. If that doesn't work, please give more info like: what type of report you are doing and what the Pagination values are. Please note the following:
    Report Template
    Pagination Scheme
    Enable Partial Page Refresh
    Display Position
    Number of Rows/Number of Rows Item
    Maximum Row Count

  • Populate multi record display item

    Hellou gurus!
    I have forms 10g and i need to populate display item in enter query mode. My problem is that I have table T1 with some static values. Table T2 is through ID connected (reference) to table T1 1:1 cardinality and T2 table also have reference to T3 table.
    I have block B2 based on table T2 and in this block I have multirecord item for inserting and updating new values for T2, but in this block ii also have no DB, multi record display item (because i don't want to allow editting in T1 table records) for diplaying static values for table T1. I want to display all static values from T1 next to the editable values in T2 (T2 multi record field is not insert yet). I tried for loop, select into but it not work. T1 values need to be selected before I started to inserting values into T2 items, but off course they need to be referenced It is hard to explain but i belive you understand.
    Can you help me how I can populate multi record item??

    You have to write the code again for your second list item....
    group_id RecordGroup;
    list_id Item  := Find_Item('button.tyear');
    list_id1 Item  := Find_Item('button.tperiod');
    status NUMBER;
    rg_name varchar2(40) := 'recgroup';
    BEGIN
    ----------------------------- LIST
    clear_list(list_id);
    group_id := Find_Group(rg_name);
    IF NOT id_null(group_id) then
        Delete_Group(group_id);
    End if;
    group_id := Create_Group_From_Query(rg_name,
    'select vm_year, vm_year from fwqgl.vouchermaster
    group by vm_year');
    status := Populate_Group(rg_name);
    Populate_List(list_id, group_id);
    /* --------------------SECOND LIST ITEM...BUT REC. GRP NAME CAN BE SAME,better to use another name if you need to retrieve list and store qry..other wise the fol. code is enuf-----------------------*/
    clear_list(list_id1);
    group_id := Find_Group(rg_name);
    IF NOT id_null(group_id) then
        Delete_Group(group_id);
    End if;
    group_id := Create_Group_From_Query(rg_name,
    'select vm_period, vm_period from fwqgl.vouchermaster
    group by vm_period');
    status := Populate_Group(rg_name);
    Populate_List(list_id1, group_id);
    END;Edited by: Dora on Dec 5, 2009 10:41 AM

  • Number of items/records display

    I want to set the number of items/records display base on query. I tried Set_Block_Property and Set_Item_Property, they don't have any option for me to set it dynamically. Any ideas?
    Thanks

    A couple:
    a) Set QUERY ALL RECORDS to YES, and programmaticaly set MAXIMUM RECORDS FETCHED.
    b) in a POST-QUERY block-level trigger, check the :system.trigger_record. When it reaches the number you want, issue an ABORT_QUERY built-in.
    Hope this helps,
    Pedro

  • Multiple records displayed on form at one time- 2 lines for each record

    Hello,
    I have a canvas in which I want to display 8 records at at time, so in the data block I specified 8 as the "number of records displayed" value.
    However, the record has too many fields to display on 1 vertical line, so I want to split the fields into two separate lines, so there will still be 8 records but each in two lines.
    How do I do that?
    I'm using Forms 10g. The block is a database block using FROM CLAUSE QUERY , and the canvas is stacked.
    Thanks

    Sandy,
    You will need to set the "Distance Between Records" property for each item in the Multi-Record Block. This will increase the space between rows so you can stack them into two rows. Unfortunately, you can't set this property at the block - so you have to set it for each displayed item.
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Stacked Canvas and No. of records display on the block?

    Any coding to re-size the "Stacked" canvas and no.of records displays on the block?
    Please advice,
    Amy

    u can set the view port and Width and height of the Stack canvas at runtime but not No of Records display....
    set_view_property .....VIEW_SIZE or Width / Height
    for canvas size use SET_CANVAS_PROPERTY
    Baig
    [My Oracle Blog|http://baigsorcl.blogspot.com/]

  • How to control detail records displayed after requery

    I have a master/detail form. I did not like the behavior of the screen clearing after I did a save so I added code to requery the master/detail records. There is still one behavior which I need to fix -- after I requery the master and detail records, I always get the first set of detail records, not the set of records displayed on the screen when I did the save. So if I have detail rows 40-50 displayed on the screen and do a save, the master/detail rows are requeried but I see rows 1-10 on the screen, not 40-50. Any ideas how to code around this?

    This is due in part to the fact that detaching the detail object from its master and actually deleting the detail object are two different things. To work around this, add the following in your session bean, where Departments and Employees are your master/detail objects, respectively:
    public void removeNestedEmployee(Employees entity) {
    Departments owningDept = entity.getDepartment();
    owningDept.removeDepartment(entity);
    UnitOfWork uow = getSessionFactory().acquireUnitOfWork();
    uow.deepMergeClone(owningDept);
    Object empWorkingCopy = uow.readObject(entity);
    uow.deleteObject(empWorkingCopy);
    uow.commit();
    Re-generate the data control for this session bean and then drag and drop this method onto your JSF page. The argument you'll pass in is the data provider for the selected employee:
    ${bindings.departmentCollectionIterator.currentRow.dataProvider}
    This will both detach the record from the owning entity, delete the record, and force a refresh of both the master and detail iterators.
    Hope this helps,
    Lynn Munsinger
    Oracle JDeveloper and ADF Product Management

  • Record display to match log in user

    I'm trying to create a log in area with user information. I
    have used the update record and it does display a record but only
    the first record that I input no matter what username I log in
    with. I want to have the record display match the logged in users
    information.

    Heya Joe,
    Try this:
    1. Restrict access to page for logged in users.
    2. Create form you'll use for Update Record Server Behavior.
    3. Add a hidden field in the form for primary_key name and id
    = primary_key
    4. Add the value for primary_key as the session login_id from
    the Bindings Tab in Dreamweaver.
    5. Add Update Record Server Behavior. Select primary_key form
    field for integer primary key in Update Record SB and add other
    form fields corresponding to update record accordingly.
    6. save, put, login, visit, update logged in users record.
    Hope that helps!

  • Can you set # of records displayed at runtime?

    I know there's a GET_BLOCK_PROPERTY for records_displayed, but not a SET_BLOCK_PROPERTY. Is there an equivalent I can use? thanks

    The number of records displayed cannot be changed. But you can use workarounds:
    1) create a stacked canvas and change its size
    or
    2) create a dsplayed item and change its size

  • FRM-30033: Records buffered must exceed records displayed.

    Dear,
    i am getting an error message while compiling my form.
    FRM-30033: Records buffered must exceed records displayed.
    plz help.

    The Records Buffered Property was not greater than the Records Displayed Property.
    Correct the value of the Records Buffered Property and recompile the module.
    In your block's property Under Records, there are two properties
    Number of Records Buffered Property
    Number of Records Buffered Displayed.
    Displayed cannot be more than buffered.

  • Add text to display when no records display

    In 'Building Reports' 21.6 which is 'Add text to display when no records display' a solution is given which involves putting boilerplate text underneath the group frame at the same level as the repeating group so that if there aren't any records retrieved the boilderplate text will be visible. My question is - is there an alternative method for achieving the same thing? i.e display the boilderplate text 'None.' if no records are returned. I have a report with a large number of frames & find the solution proposed messy & difficult to implement.
    TIA
    Simon

    The only thing you can do is make sure there is something to print. You could bas your report on a temp table which you populate with your select statement which you normally use in your report. Then after the table is populated you add the missing records in the temp table. Your report will be based upon the temp table.
    You can start this process in the after parameter form trigger by calling a PL/SQL procedure which will perform the business logic explained above.
    Marcos

  • No Records Display in List

    Hi,
    We just upgraded our sandbox environment from 4.6C to ECC6. I'm finding that no Infotype 0000 records (Actions) display when I click on the Overview icon from transaction PA20, even though I know they exist. Whether there is actually just one record or many, none of them show in the Actions Overview list. I can click the Display icon from Display HR Master Data screen and the current record displays; and then I can walk through the records using the "Next Record" button. But, the overview function does not work. Has anyone else experienced this problem?
    Thanks,
    Varsha.

    Hi,
    We had this problem when we upgraded from 4.0B to 4.7. We solved it by adding an entry to table t77s0 for ADMIN EVSUP, which lets you determine if additional actions in Infotype 0302 will be used (Blank deactivated, 1 activated).
    ALSO:
    Go to Table T77S0 (transaction SM31) and change the ADMIN, EVSUP to 0 (instead of 1). Then the records will be shown again. With an upgrade you have to know that your own settings in table T77S0 will be overwritten
    Reward points if found helpfull...
    Cheers,
    Siva.

Maybe you are looking for