JTable  error!!!

Guys,
I got the code below compiled, but it does not run. I wanna start the JTable depending on a integer value. I have a runtime error. I placed it in the bottom...
//stackSize is defined before, and it's value is ok.
public class Pilha extends JFrame implements ActionListener
public String[][] data;
public int StackSize;
public Pilha()
if (stackSize ==3 )
{  String[][] data = {{""}, {""}, {""}}; }
String[] go = {"Stack"};
     JTable table = new JTable(data,go);
ERROR DURING RUN:
java.lang.NullPointerException
at javax.swing.JTable$1.getRowCount(JTable.java:422)
at javax.swing.JTable.getRowCount(JTable.java:1716)
at javax.swing.JTable.valueChanged(JTable.java:3137)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
at javax.swing.DefaultListSelectionModel.setAnchorSelectionIndex(DefaultListSelectionModel.java:606)
at javax.swing.JTable.initializeLocalVars(JTable.java:3547)
at javax.swing.JTable.<init>(JTable.java:370)
at javax.swing.JTable.<init>(JTable.java:308)
at javax.swing.JTable.<init>(JTable.java:420)
at Pilha.<init>(Pilha.java:122)
at MainFrame$3.actionPerformed(Simuled.java:169)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

All right, I tried it, but what I got:
Pilha.java:82: illegal start of expression
{         data = {{""}, {""}, {""}}; }
Put in other words, if I just declare data outside method Pilha() as public and inside Pilha() I try to assing a value to data, It does not work.
Can you help me?

Similar Messages

  • JTable Error When Editing

    I have a JTable that is created by a ResultSetTableModel class as shown below. I have written code to insert, delete, update, and reset the the rows in this table, which then updates a database. However, when the table is in editing mode, and i hit enter or tab, i receive the following error:
    java.lang.ArrayIndexOutOfBoundsException: 3 >= 0
    at java.util.Vector.elementAt(Vector.java:427)
    at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:633)
    at javax.swing.JTable.setValueAt(JTable.java:1783)
    at javax.swing.JTable.editingStopped(JTable.java:3129)
    at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:124)
    at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:328)
    at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:213)
    at javax.swing.JTable$GenericEditor.stopCellEditing(JTable.java:3460)
    at javax.swing.plaf.basic.BasicTableUI$NavigationalAction.actionPerformed(BasicTableUI.java:154)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1512)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2435)
    at javax.swing.JTable.processKeyBinding(JTable.java:3254)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2481)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2398)
    at java.awt.Component.processEvent(Component.java:4902)
    at java.awt.Container.processEvent(Container.java:1566)
    at java.awt.Component.dispatchEventImpl(Component.java:3598)
    at java.awt.Container.dispatchEventImpl(Container.java:1623)
    at java.awt.Component.dispatchEvent(Component.java:3439)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1688)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:593)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:765)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:698)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:559)
    at java.awt.Component.dispatchEventImpl(Component.java:3468)
    at java.awt.Container.dispatchEventImpl(Container.java:1623)
    at java.awt.Window.dispatchEventImpl(Window.java:1585)
    at java.awt.Component.dispatchEvent(Component.java:3439)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    Any suggestion on how I could fix this, and update the table on hitting TAB or ENTER?
    Here is the TableModel being used:
    import java.sql.*;
    import javax.sql.*;
    import java.util.*;
    import javax.swing.table.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import sun.jdbc.rowset.CachedRowSet;
    public class ResultSetTableModel extends DefaultTableModel{
    Vector rows;
    int[] types;
    String[] names;
    ResultSet resultSet = null;
    JTable table;
    public ResultSetTableModel(ResultSet rs, String[] columnNames, JTable table)throws SQLException{
    resultSet = rs;
    this.table = table;
    ResultSetMetaData rsmd = rs.getMetaData();
    types = new int[rsmd.getColumnCount()];
    names = columnNames;
    for(int n = 0; n < types.length; n++){
    types[n] = rsmd.getColumnType(n+1);
    rows = new Vector();
    while(rs.next()){
    Vector aRow = new Vector();
    for(int j = 0; j < types.length; j++){
    switch(types[j]){
    case Types.TINYINT:
    aRow.addElement(new Byte(rs.getByte(j+1)));
    break;
    case Types.SMALLINT:
    aRow.addElement(new Short(rs.getShort(j+1)));
    break;
    case Types.INTEGER:
    aRow.addElement(new Integer(rs.getInt(j+1)));
    break;
    case Types.BIGINT:
    aRow.addElement(new Long(rs.getLong(j+1)));
    break;
    case Types.REAL:
    aRow.addElement(new Float(rs.getFloat(j+1)));
    break;
    case Types.FLOAT:
    aRow.addElement(new Double(rs.getDouble(j+1)));
    break;
    case Types.DOUBLE:
    aRow.addElement(new Double(rs.getDouble(j+1)));
    break;
    case Types.DECIMAL:
    aRow.addElement(rs.getBigDecimal(j+1));
    break;
    case Types.NUMERIC:
    aRow.addElement(new Long(rs.getLong(j+1)));
    break;
    case Types.BIT:
    aRow.addElement(new Boolean(rs.getBoolean(j+1)));
    break;
    case Types.BINARY:
    aRow.addElement(rs.getBytes(j+1));
    break;
    case Types.DATE:
    aRow.addElement(rs.getDate(j+1));
    break;
    case Types.TIME:
    aRow.addElement(rs.getTime(j+1));
    break;
    case Types.TIMESTAMP:
    aRow.addElement(rs.getTimestamp(j+1));
    break;
    default:
    aRow.addElement(rs.getString(j+1));
    rows.addElement(aRow);
    public Class getColumnClass(int column){
    switch(types[column]){
    case Types.BIT:
    return Boolean.class;
    case Types.DATE:
    return java.sql.Date.class;
    case Types.TIME:
    return java.sql.Time.class;
    case Types.TIMESTAMP:
    return java.sql.Timestamp.class;
    default:
    return Object.class;
    public int getRowCount(){
    if(rows == null) {
    return 0;
    return rows.size();
    public int getColumnCount(){
    return types.length;
    public Object getValueAt(int row, int column){
    Vector aRow = (Vector) rows.elementAt(row);
    return aRow.elementAt(column);
    public String getColumnName(int column){
    return names[column];
    public ResultSet getResultSet() {
    return resultSet;
    Thanks for your help in advance.
    Catie

    Nevermind...I figured it out. Just had to override the setValueAt function for the ResultSetTableModel.

  • Still cant get it to work ?????? jTable Error

    Hi All,
    not to sure how to put the problem but here goes
    i have been working on a problem using a JTable
    and MYSQL database and the information is coming
    up twice. i am using abstractTableModel.
    i am just wondering if there is something a have over looked
    if any one can help me it will Much appreciated
    JJ

    and the information is coming up twice.
    Then you are adding the information to the TableModel twice.
    i am using abstractTableModel. No you aren't. You are using some class that extend AbstractTableModel. I would suggest you use the DefaultTableModel so you don't have to write your own TableModel.
    Simple example:
    http://forum.java.sun.com/thread.jspa?forumID=57&threadID=5123381

  • Swing JTable error when clicking on column header

    Hi I'm using ADF Swing in JDev 10.1.3 linking a UI JTable to a ADF viewobject, when clicking on the column header i get the follwing:
    [ConditionalEventPump] Exception occurred during event dispatching:
    oracle.jbo.InvalidObjNameException: JBO-25005: Objektnavn 1 for type Variabel er ugyldigt
    at oracle.jbo.common.VariableImpl.validateName(VariableImpl.java:234)
    at oracle.jbo.common.VariableImpl.setVariableKind(VariableImpl.java:301)
    at oracle.jbo.server.ViewRowSetImpl.defineNamedWhereClauseParam(ViewRowSetImpl.java:3390)
    at oracle.jbo.server.ViewObjectImpl.retrieveByKey(ViewObjectImpl.java:10374)
    at oracle.jbo.server.ViewObjectImpl.retrieveByKey(ViewObjectImpl.java:10180)
    at oracle.jbo.server.ViewRowSetImpl.findByKey(ViewRowSetImpl.java:3955)
    at oracle.jbo.server.ViewRowSetImpl.findByKey(ViewRowSetImpl.java:3794)
    at oracle.jbo.server.ViewRowSetImpl.findByKey(ViewRowSetImpl.java:3782)
    at oracle.jbo.server.ViewObjectImpl.findByKey(ViewObjectImpl.java:6991)
    at oracle.adf.model.bc4j.DCJboDataControl.setCurrentRowInRSI(DCJboDataControl.java:930)
    at oracle.adf.model.bc4j.DCJboDataControl.setCurrentRowWithKey
    (DCJboDataControl.java:881)
    at oracle.jbo.uicli.jui.JUTableBinding$1$1.run(JUTableBinding.java:222)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:158)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    Hi,
    in this case the bind variable name comes from the viewLink definition. What is the m/d, is it based on e.g. Departments/Employees pushing the ADF BC wizard? I need to understand how to build a testcase that allows me to reproduce the issue. Do you show both , master and detail on the Swing form, or only the detail?
    Frank

  • Error in updating Jtable Database

    package desktopapplication1; import java.util.*; import java.sql.*; import javax.swing.JOptionPane; import javax.swing.table.*; public class Datab extends DefaultTableModel { private Connection conn; private Statement st; private ResultSet rs; private ResultSetMetaData rsmd; private int rows; public Datab(String driver, String url, String query) throws SQLException, ClassNotFoundException { Class.forName(driver); conn = DriverManager.getConnection(url); st = conn.createStatement(rs.TYPE_SCROLL_SENSITIVE,rs.CONCUR_UPDATABLE); if ( query.substring(0,3).equalsIgnoreCase("INS") ) { st.executeUpdate(query); } else if ( query.substring(0,3).equalsIgnoreCase("DEL") ) { st.executeUpdate(query); } else { rs = st.executeQuery(query); rsmd = rs.getMetaData(); rs.last(); rows = rs.getRow(); } fireTableStructureChanged(); } public String getColumnName(int column){ try{ return rsmd.getColumnName(column+1); }catch(Exception e){ e.printStackTrace(); } return ""; } public int getColumnCount(){ try{ return rsmd.getColumnCount(); }catch(Exception e){ e.printStackTrace(); } return 0; } public int getRowCount(){ try{ return rows; }catch(Exception e){ e.printStackTrace(); } return 0; } public Object getValueAt(int row, int column){ try{ rs.absolute(row+1); return rs.getObject(column+1); }catch(Exception e){ e.printStackTrace(); } return ""; } public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } public boolean isCellEditable(int row, int column) { if (column < 0) { return false; } else { return true; } } public void setValueAt(Object value, int row, int column){ try{ int conf = JOptionPane.showConfirmDialog(null,"You wanna reaplace "+getValueAt(row,column)+" with "+value+"?", null, 2); if ( conf == 0 ) { rs.absolute(row+1); System.out.println("ROW = "+row+"CURSOR = "+(row+1)+""+rs.getString(1)+column); rs.updateString("Recipe","test"); //i tried to use a simple update cause the normal was not running but same error+ rs.updateRow(); }else { System.out.println("0"); } }catch(SQLException sqle){ System.err.println("Error setting value at row "+row+" column "+column+" with value "+value); sqle.printStackTrace(); } } }
    hi, when i click on my table to edit a value, it give me an error and sometimes fill the cell with a value like [B@341j0j
    Error setting value at row 1 column 0 with value soup2
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access]Error in row
    at sun.jdbc.odbc.JdbcOdbcResultSet.setPos(JdbcOdbcResultSet.java:5271)
    at sun.jdbc.odbc.JdbcOdbcResultSet.updateRow(JdbcOdbcResultSet.java:4171)
    at desktopapplication1.Datab.setValueAt(Datab.java:104)
    at javax.swing.JTable.setValueAt(JTable.java:2719)
    at javax.swing.JTable.editingStopped(JTable.java:4721)
    at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:125)
    at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:350)
    at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:215)
    at javax.swing.JTable$GenericEditor.stopCellEditing(JTable.java:5475)
    at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(DefaultCellEditor.java:367)
    at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
    at javax.swing.JTextField.postActionEvent(JTextField.java:705)
    at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
    at java.awt.Component.processEvent(Component.java:6040)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668)
    at java.awt.Component.dispatchEventImpl(Component.java:4502)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Window.dispatchEventImpl(Window.java:2475)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    my db is like
    RecipeName intvalue1 intvalue2 intvalue3 stringvalue4
    soup 3 2 11 fish
    chocolate 3 2 44 dessert
    Edited by: kainard on Aug 1, 2010 2:31 PM
    Edited by: kainard on Aug 1, 2010 2:37 PM

    Can you explain why you declare
    private Connection conn;
    private Statement st;
    private ResultSet rs;
    private ResultSetMetaData rsmd;
    as private

  • Adding data dynamically to JTable with a filter - getting error

    Hello,
    I am using JTable, and adding data and displaying it worked fine
    until I tried adding a filter,
    can anyone tell me what am I doing wrong or
    why am I getting this Error?
    The Error message
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at javax.swing.DefaultRowSorter.convertRowIndexToModel(DefaultRowSorter.java:501)
            at javax.swing.JTable.convertRowIndexToModel(JTable.java:2620)
            at javax.swing.JTable.getValueAt(JTable.java:2695)
            at javax.swing.JTable.prepareRenderer(JTable.java:5712)
            at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2075)
            at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1977)
            at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1773)
            at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
            at javax.swing.JComponent.paintComponent(JComponent.java:763)
            at javax.swing.JComponent.paint(JComponent.java:1027)
            at javax.swing.JComponent.paintChildren(JComponent.java:864)
            at javax.swing.JComponent.paint(JComponent.java:1036)
            at javax.swing.JViewport.paint(JViewport.java:747)
            at javax.swing.JComponent.paintChildren(JComponent.java:864)
            at javax.swing.JComponent.paint(JComponent.java:1036)
            at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
            at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:277)
            at javax.swing.RepaintManager.paint(RepaintManager.java:1217)
            at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
            at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
            at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
            at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
            at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)I am also using my own class that extends "AbstractTableModel"
    as TableModel,
    public class MyTableModel extends AbstractTableModel  {
        ArrayList<TableData> tableData=new ArrayList<TableData>(10);
        String[] columnNames=new String[]{"S/N"," Time (mili)","SD","SA","SSAP","DA","DSAP","FC","DATA"};   
        public void addRow(TableData data){
            tableData.add(data);
            fireTableDataChanged();
        @Override
        public int getRowCount() {
            return tableData.size();
        public TableData getRow(int i){
            return tableData.get(i);
        @Override
        public int getColumnCount() {
            return columnNames.length;
        @Override
        public String getColumnName(int col) {
                return columnNames[col];
        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            return tableData.get(rowIndex).getValue(columnIndex);
        }The Row Filter class
    class myRowFilter extends RowFilter<MyTableModel,Integer>{
            @Override
            public boolean include(Entry<? extends MyTableModel, ? extends Integer> entry) {
                // Entry < SomeCostumTableModel , Integer> entry   ; Integer =Identifier= Row Number
                boolean frame_type;
                MyTableModel model=entry.getModel();
                TableData data=model.getRow(entry.getIdentifier());
                frame_type=((SD1&&data.SD==TableData.SD1) ||
                                             (SD2&&data.SD==TableData.SD2) ||
                                             (SD3&&data.SD==TableData.SD3) ||
                                             (SD4&&data.SD==TableData.SD4) ||
                                             (SC&&data.SD==TableData.SC) );
               return frame_type;
        }and How I add the filter to the Table
        private MyTableModel myTableModel=new MyTableModel();
        private RowSelectionListener rowSelectionListener=new RowSelectionListener();
        TableRowSorter<MyTableModel> sorter=new TableRowSorter<MyTableModel>(myTableModel);
        private FilterFrame filterFrame=new FilterFrame(this);
        // then in the constructor of the main frame
        // I call this
            sorter.setRowFilter(filterFrame.filter);
            MainTable.setRowSorter(sorter);
            sorter.setSortsOnUpdates(true);Edited by: YellowMurdoch on Nov 17, 2009 6:31 AM
    Edited by: YellowMurdoch on Nov 17, 2009 6:31 AM

    Thanks for noting that.
    you mean like this?
    public void addEntry(TableData data){
            myTableModel.addRow(data);
            javax.swing.SwingUtilities.invokeLater(new Runnable(){
                @Override
                public void run(){
                        myTableModel.fireTableRowsInserted(0,0);
        }both work,
    would putting "invokeLater" inside "addEntry" somehow mess other things?
    i guess that means addRow() is not supposed to update the table graphically?
    Edited by: YellowMurdoch on Nov 17, 2009 9:30 AM
    Edited by: YellowMurdoch on Nov 17, 2009 9:33 AM

  • Error while updating JTable

    WHAT I WANT TO DO:
    I display a list of items and their characteristics in a JTable (the content is in a DefaultTableModel). Each time a user buys items, I refresh the list for all the users currently connected to the server. The client buying the item is also prompted through a JOptionPane that his order has been processed.
    THE CODE:
    controller.handleOrder();
    JOptionPane.showMessageDialog(new JFrame(), message, "SUCCESSFUL ORDER", JOptionPane.INFORMATION_MESSAGE);Another thread calls the following function, which refreshes the list in the JTable:
    public void updateFlowers(){
         // method in Controller
         setChanged();
         notifyObservers();
        |
        V
    public void update(Observable arg0, Object arg1) {
         // method in Frame
         loadFlowers();
        |
        V
    private void loadFlowers(){
         // method in Frame
         flowerTableModel = controller.loadFlowers();
         flowerTable.setModel(flowerTableModel);
       |
       V
    public DefaultTableModel loadFlowers()  {
         // method in Controller
         Object table[][]=null;
         flowers=ClientOperations.getInstance().getFlowers();
         if (flowers!=null){
              table=new Object[flowers.size()][3];
              int i=0;
              for (Flower flower:flowers){
                   table[0]=flower.getSpecies();
                   table[i][1]=new Float(flower.getPrice());
                   table[i][2]=new Integer(flower.getInStock());
                   i++;
         DefaultTableModel flowersDTM=new DefaultTableModel(table,TABLE_HEADER);
         return flowersDTM;
    THE ERROR I GET:
    Exception occurred during event dispatching:
    java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
         at java.util.Vector.elementAt(Unknown Source)
         at javax.swing.table.DefaultTableColumnModel.getColumn(Unknown Source)
         at javax.swing.plaf.basic.BasicTableUI.paintGrid(Unknown Source)
         at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
         at javax.swing.plaf.ComponentUI.update(Unknown Source)
         at javax.swing.JComponent.paintComponent(Unknown Source)
         at javax.swing.JComponent.paint(Unknown Source)
         at javax.swing.JComponent.paintToOffscreen(Unknown Source)
         at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
         at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
         at javax.swing.RepaintManager.paint(Unknown Source)
         at javax.swing.JComponent._paintImmediately(Unknown Source)
         at javax.swing.JComponent.paintImmediately(Unknown Source)
         at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
         at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
         at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
         at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.Dialog$1.run(Unknown Source)
         at java.awt.Dialog$3.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.awt.Dialog.show(Unknown Source)
         at javax.swing.JOptionPane.showOptionDialog(Unknown Source)
         at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
         at javax.swing.JOptionPane.showMessageDialog(Unknown Source)
         at ui.OrderFrame.handleOrder(OrderFrame.java:185)
         at ui.OrderFrame.access$1(OrderFrame.java:181)
         at ui.OrderFrame$ButtonListener.actionPerformed(OrderFrame.java:218)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    I would very much appreciate it if you could explain why I get this error and how it can be solved.
    Thank you,
    Cristina                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Updating of Swing components must be done on the EDT. Wrap the code in SwingUtilities.invokeLater() or use a SwingWorker.
    Read the section from the Swing tutorial on Concurrency for more information.

  • Runtime Error in JTable with JTableModel Implementation

    Hi,
    I tried to do a JTable (named "table) in my program, with an implementation of JTableModel, called DataContent (obj named "dc"). Now if I try to change dc's data and refresh the table in the window by doing a "table.setModel(dc);", my programm gives me just runtime errors.
    class MyFrame extends JFrame implements ActionListener{
    // This is the class of the JFrame which contains the table
    // globally defined vars:
    private DataContent dc;
    private final JTable table;
    // in someMethod(){
    public MyFrame(){
    // creates, inits and draws the table into the window - this works !
         JPanel jpPreview = new JPanel(new GridLayout(1,0));
         dc = new DataContent();
            table = new JTable(dc.getTableData(), dc.getCol());
            table.setPreferredScrollableViewportSize(new Dimension(500, 40));
            table.setBorder(borderPanel);
            jpPreview.add(table);
         jpSeparator.add(jpPreview);
    public void actionPerformed(ActionEvent ae) {
    // in the same class
              if(ae.getSource() == butLoadPath){
                   // choose a path by clicking on a button "butLoadPath"
                   szPath = sg.readPath();
                   labelLoadPath.setText(szPath);
                   dc.setPath(szPath);
                   dc.setContent(szToken);
              }else if(ae.getSource() == butSeparator){
                   // choose a different separator token by JRadioButtons
                   // when someone clicks on the button butSeparator,
                   // the table should be refreshed, with this function:
                   setPreview();
              }else...
    private void setPreview(){
              // reads out which option was chosen by the radiobuttons - this works
              // refreshes the Object[][] oData in dc - this works, too
              dc.setContent(szToken);
              // this should refresh the table obj in the JFrame,
              // this gives me some Null.pointer.exception - why ?
              table.setModel(dc);// ??? P R O B L E M ???
         }I have implemented the Interface DataContent like this:
    public class DataContent implements TableModel{
         // vars
         private int iRow,iCol;
         private String szInputData = "";
         char cToken, cLineLimiter;
         private Object[][] oData;
         // ctor
         public DataContent(){
              reset(); // set Elements...
         public void setPath( String szPath){          
              // read line from file obj...
         private void reset(){
              // set up an epmty set of data in the table...
         public void setContent( String szToken){          
              // separate content of szInputData by szToken and set oData...
         public Object[][] getTableData(){
              // return oData...
         public String[] getCol(){
              // gives some name for each column...
    ////////////////////////////////// automatic generated for the implementation of the interface JTableModel /////////////////
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#getRowCount()
         public int getRowCount() {
              // TODO Auto-generated method stub
              return iRow;
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#getColumnCount()
         public int getColumnCount() {
              // TODO Auto-generated method stub
              return iCol;
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#getColumnName(int)
         public String getColumnName(int columnIndex) {
              // TODO Auto-generated method stub
              String[] szColumnName = getCol();
              return szColumnName[columnIndex];
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#getColumnClass(int)
         public Class getColumnClass(int columnIndex) {
              // TODO Auto-generated method stub
              return null;
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#isCellEditable(int, int)
         public boolean isCellEditable(int rowIndex, int columnIndex) {
              // TODO Auto-generated method stub
              return false;
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#getValueAt(int, int)
         public Object getValueAt(int rowIndex, int columnIndex) {
              // TODO Auto-generated method stub
              return oData[rowIndex][columnIndex];
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
              // TODO Auto-generated method stub
              // NO editing !
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#addTableModelListener(javax.swing.event.TableModelListener)
         public void addTableModelListener(TableModelListener l) {
              // TODO Auto-generated method stub
         /* (non-Javadoc)
          * @see javax.swing.table.TableModel#removeTableModelListener(javax.swing.event.TableModelListener)
         public void removeTableModelListener(TableModelListener l) {
              // TODO Auto-generated method stub
    }I tried to implement some of the automatic generated methods, without success, still the same problem. What can I do, that...
    table.setModel(dc);
    ...works without probs ???
    Is there a better way to do this - the table should not even be editable, just to be shown in the window, to give an impression ??
    THX

    Why are you creating you own TableModel. Use the DefaultTableModel its easier. If you don't want you cells to be editable then you just do this:
    JTable table = new JTable(...)
         public boolean isCellEditable(int row, int column)
              return false;
    };

  • Reporting errors while filling a JTable

    Hello all, this is my first post here.
    When i implement a class derived from AbstractTableModel to show some data in a JTable, sometimes, specially when this data is coming from databases, i need to be able to report any errors that ocur while geting that data via a message dialog, for example, specifically inside the overriden getValueAt() function, eg.
    public Object getValueAt(int rowIndex, int columnIndex) {
    try{
    ..... read the information from the database
    }catch(SQLException ex){
    JOptionPane.showMessageDialog(null, "Error!"........ show the error
    this actually works, the message dialog is shown if an error ocurs, however there are 2 problems:
    1.- after the user closes the message dialog, the JTable is not painted properly.
    2.- i get all these exceptions:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.SwingUtilities.computeIntersection(SwingUtilities.java:417)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:430)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    If i just remove the line that shows the message dialog, then everything works ok. But i NEED a way to inform the user that something went wrong, how do i do this?
    Thanks!

    Hey numbnuts,
    People keep reporting this error and you keep closing it w/o proper attention:
    In SwingUtilities, sometimes "dest" becomes null. Don't tell why - sometimes its because of some library maybe you didnt write. But if you put in a "*if (dest == null) o something ...*" in there - it would fix it. Even a freshman comp sci programmer knows that.
    And you wonder why nobody wants to learn Java anymore...
        public static Rectangle computeIntersection(int x,int y,int width,int height,Rectangle dest) {
            int x1 = (x > dest.x) ? x : dest.x;
            int x2 = ((x+width) < (dest.x + dest.width)) ? (x+width) : (dest.x + dest.width);
            int y1 = (y > dest.y) ? y : dest.y;
            int y2 = ((y + height) < (dest.y + dest.height) ? (y+height) : (dest.y + dest.height));
            dest.x = x1;
            dest.y = y1;
            dest.width = x2 - x1;
            dest.height = y2 - y1;
         // If rectangles don't intersect, return zero'd intersection.
         if (dest.width < 0 || dest.height < 0) {
             dest.x = dest.y = dest.width = dest.height = 0;
            return dest;
        }End Communication

  • Some error in setting table model to a JTable..kindly help..

    hi all,
    i m pasting a code of a function in which i fetch data from the database n display it in a JTable pasted on a panel in a JFrame window.
    There is some problem with the table model which i m unable to correct.
    Kindly help..
    public void showDetails(){
         Statement statement;
         ResultSet rs;
    Connection connection;
         //DATABASE CONNECTION
              try{
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              connection=DriverManager.getConnection("jdbc:odbc:iirsdb");
                   statement=connection.createStatement();
                   String strQuery=null;
                   Object[][] data;
                   //SELECT QUERIES
                        if(index>=1 && index<=14)
                             strQuery="select IP_Address,"+strMapped+",Timestamp from tblStatic where IP_Address='" + strIP + "' and Timestamp='"+strTime+"' and "+strMapped+"='"+strDetailResult+"'";
                        if(index>17 && index<=22)
                             strQuery="select IP_Address,"+strMapped+",Timestamp from tblSemiDyn where IP_Address='" + strIP + "' and Timestamp='"+strTime+"' and "+strMapped+"='"+strDetailResult+"'";
                        if(index==25)
                             strQuery="select IP_Address,"+strMapped+",Timestamp from tblDyn where IP_Address='" + strIP + "' and Timestamp='"+strTime+"' and "+strMapped+"='"+strDetailResult+"'";
                   rs=statement.executeQuery(strQuery);
                   ResultSetMetaData rsmd=rs.getMetaData();
                   int col=rsmd.getColumnCount();
                   Vector colNames=new Vector();
                   Vector row=new Vector();
                   for(int i=1;i<=col;i++){
                        colNames.addElement(rsmd.getColumnName(i));
                   while(rs.next()){
                        for(int i=1;i<=col;i++){
                             row.addElement(rs.getObject(i));
                        data.addElement(row);
                   DefaultTableModel tableModel = new DefaultTableModel(data, colNames);
                   JTable table= new JTable(tableModel);
                   //table.setModel(new DefaultTableModel(data,colNames));
                   //JTable.revalidate();
                   //display table with ResultSet contents
                             //JTable table= new JTable(row, colNames);
                             JScrollPane scroller=new JScrollPane(table);
                             pnlFifth.add(scroller,BorderLayout.CENTER);
                             scroller.setVisible(true);
                             scroller.validate();
                   rs.close();
    }catch(ClassNotFoundException cnfex){
                   System.err.println("Failed to load JDBC/ODBC driver");
                   cnfex.printStackTrace();
    catch (SQLException sql){
    JOptionPane.showMessageDialog(this, "Cannot connect to Database"+sql,"Error", JOptionPane.WARNING_MESSAGE);
    }

    hi..okays..will take care of this..actually, this ws d first time i ws using this community service.
    Below.i inserted checkstatements but still d table isnt getting displayed..wht to do? D logic is correct i guess but whr is d problem?
    public void showDetails(){
         Statement statement;
         ResultSet rs;
        Connection connection;
        Vector colNames=null;
             Vector data=null;
         //DATABASE CONNECTION
              try{
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    connection=DriverManager.getConnection("jdbc:odbc:iirsdb");
                   String strQuery=null;
              data = new Vector();
                   //SELECT QUERIES
                        if(index>=1 && index<=14)
                             strQuery="select IP_Address,"+strMapped+",Timestamp from tblStatic where IP_Address='" + strIP + "' and Timestamp='"+strTime+"' and "+strMapped+"='"+strDetailResult+"'";
                        if(index>17 && index<=22)
                             strQuery="select IP_Address,"+strMapped+",Timestamp from tblSemiDyn where IP_Address='" + strIP + "' and Timestamp='"+strTime+"' and "+strMapped+"='"+strDetailResult+"'";
                        if(index==25)
                             strQuery="select IP_Address,"+strMapped+",Timestamp from tblDyn where IP_Address='" + strIP + "' and Timestamp='"+strTime+"' and "+strMapped+"='"+strDetailResult+"'";
                   statement=connection.createStatement();
                   rs=statement.executeQuery(strQuery);
                   ResultSetMetaData rsmd=rs.getMetaData();
                   int col=rsmd.getColumnCount();
                   //int r=rsmd.getRowCount();
                   colNames=new Vector();
                   for(int i=1;i<=col;i++){
                        colNames.addElement(rsmd.getColumnName(i));
                   while(rs.next()){
                        Vector row=new Vector(col);
                        for(int i=1;i<=col;i++){
                             row.addElement(rs.getObject(i));
                        data.addElement(row);
                   rs.close();
                   statement.close();
    }catch(ClassNotFoundException cnfex){
                   System.err.println("Failed to load JDBC/ODBC driver");
                   cnfex.printStackTrace();
    catch (SQLException sql){
                JOptionPane.showMessageDialog(this, "Cannot connect to Database"+sql,"Error", JOptionPane.WARNING_MESSAGE);
    JTable table=new JTable(data,colNames)
                public Class getColumnClass(int column)
                    for (int row = 0; row < getRowCount(); row++)
                        Object o = getValueAt(row, column);
                        if (o != null)
                            return o.getClass();
                    return Object.class;
            JScrollPane scrollPane = new JScrollPane( table );
            //getContentPane().add( scrollPane );
            pnlFifth.add( scrollPane );
            scrollPane.setVisible(true);
    }     

  • JTable Print to Adobe Acrobat Error

    I'm having trouble printing a jTable using Java 1.5.0_03 to Adobe Acrobat (6.0). Whenever I call print using (assuming proper try/catch statements) either
    jTable.print();or
    printJob.setPrintable(jTable.getPrintable(JTable.PrintMode.FIT_WIDTH, new MessageFormat("Header"), new MessageFormat("Footer")));
    if (printJob.printDialog())
    printJob.print();the printed jTable's column headers extend higher than they are supposed to like they were stretched (like when you drag the scroll bar down on your screen and the screen freezes), and effectively cover up parts of the header (the "Header" in this case).
    My jTable is setup as follows
    XYZ = new DefaultTableModel();
    XYZ.addColumn("A");
    XYZ.addColumn("B");
    jTable = new JTable();
    jTable.setModel(XYZ);I think this is an error with how the print function interacts with Adobe Acrobat as I don't have this problem printing to a normal printer. Is there any way to fix this?

    Are you saying there is no Adobe PDF printer, or it does not work? If it simply that it does not seem to work, then try to print to file with the printer. Then open the file in Distiller. If you get a resultant PDF, then the problem is most likely that you have somehow deactivated AcroTray.exe in the running applications. The program is in the Acrobat folder and needs to be started in that case. It should also be listed in your boot sequence for startup.

  • Error mouse click header on jtable

    I have a small project. I use jtable, i wrote class MymodelTable for jtable (include event mouseclicked).
    On jtable, i can click on header to sort.
    But, when i click button search a string (get from textfield), i was be error ...
    Please help me resolve my error. (I attached my project in path: http://www.mediafire.com/?u4nw7uajdxrg97h )
    Thanks

    With a call to getSelectionModel() of JTable, you can get a reference to the ListeSelectionModel.
    This is in fact an instance of DefaultListSelectionModel, which allows you to set a new listener object using addListSelectionListener(ListSelectionListener l).
    All you have to do then is implement a custom ListSelectionListener which handles events as you want.
    Unfortunately there isnt going to be a way of avoiding writing a Listener, but this is how you would go about it.
    colr__

  • Error in JTable Row Header

    in my program i am displaying a row header in my JTable it is displaying no problem in these the real problem is that the row header extends to the end of the frame .. is that happen or i made any mistake
    here is my code
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class RowHeaderExample1    extends JFrame
    JTable table;
    public RowHeaderExample1()
    super("Row Header Example1"); 
      setSize(300, 150);
        ListModel listModel = new AbstractListModel()
      String headers[] =
    "Row 1", "Row 2", "Row 3", "Row 4", "Row 5", "Row 6"}; 
        public int getSize()
    return headers.length;   
      public Object getElementAt(int index)
    {        return headers[index];  
    DefaultTableModel defaultModel = new DefaultTableModel(listModel.getSize(),        10); 
      table = new JTable(defaultModel);  
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
      // Create single component to add to scrollpane 
      final JList rowHeader = new JList(listModel);  
    rowHeader.setFixedCellWidth(40);  
    rowHeader.setFixedCellHeight(table.getRowHeight());  
    rowHeader.setCellRenderer(new RowHeaderRenderer1(table)); 
      JScrollPane scroll = new JScrollPane(table); 
      scroll.setRowHeaderView(rowHeader);   
    // Adds row-list left of the table 
      getContentPane().add(scroll, BorderLayout.CENTER); 
      rowHeader.addMouseListener(new MouseAdapter()
      public void mouseClicked(MouseEvent e) {   
        System.out.println("click Here 1");   
        int index = rowHeader.locationToIndex(e.getPoint());  
         table.setRowSelectionInterval(index, index);   
        table.requestFocus();   
      public static void main(String[] args)
    RowHeaderExample1 frame = new RowHeaderExample1();   
    frame.addWindowListener(new WindowAdapter()
       public void windowClosing(WindowEvent e)
    {        System.exit(0);    
      frame.setVisible(true);
    class RowHeaderRenderer1 extends JButton implements ListCellRenderer{ 
      JTable table; 
      public RowHeaderRenderer1(JTable table)
    this.table = table; 
        setFont(new Font("Dialog",0,11));   
      setMargin(new Insets(0,0,0,0));  
    public Component getListCellRendererComponent(JList list, Object value,int index, boolean isSelected, boolean hasFocus)
    list.setBackground(getBackground());  
       this.setText(value.toString());   
      return this;   
    public Component getListCellRendererComponent(JList list, Object value, boolean isSelected, boolean hasFocus){   
    list.setBackground(getBackground());    
    this.setText(value.toString());   
      return this; 
    }}

    try this
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class RowHeaderExample2
        extends JFrame {
      JTable table;
      DefaultListModel lstModel;
      DefaultTableModel defaultModel;
      public RowHeaderExample2() {
        super("Row Header Example");
        setSize(300, 150);
        lstModel = new DefaultListModel();
        lstModel.addElement("Row 1");
        lstModel.addElement("Row 2");
        lstModel.addElement("Row 3");
        lstModel.addElement("Row 4");
        defaultModel = new DefaultTableModel(lstModel.getSize(), 6);
        table = new JTable(defaultModel);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        // Create single component to add to scrollpane
        final JList rowHeader = new JList(lstModel);
        rowHeader.setFixedCellWidth(40);
        rowHeader.setFixedCellHeight(table.getRowHeight());
        rowHeader.setCellRenderer(new RowHeaderRenderer2(table));
        JButton btnAdd = new JButton("Add");
        btnAdd.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
            lstModel.addElement("Row "+lstModel.getSize()+1);
            defaultModel.addRow(new Object[]{"","","","","",""});
        JPanel panel = new JPanel();
        panel.add(btnAdd);
        JScrollPane scroll = new JScrollPane(table);
        scroll.setRowHeaderView(rowHeader); // Adds row-list left of the table
        getContentPane().add(panel, BorderLayout.NORTH);
        getContentPane().add(scroll, BorderLayout.CENTER);
        rowHeader.addMouseListener(new MouseAdapter() {
          public void mouseClicked(MouseEvent e) {
            System.out.println("click Here 1");
            int index = rowHeader.locationToIndex(e.getPoint());
            table.setRowSelectionInterval(index, index);
            table.requestFocus();
      public static void main(String[] args) {
        RowHeaderExample2 frame = new RowHeaderExample2();
        frame.addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent e) {
            System.exit(0);
        frame.setVisible(true);
    * Define the look/content for a cell in the row header
    * In this instance uses the JTables header properties
    class RowHeaderRenderer2
        extends JLabel
        implements ListCellRenderer {
       * Constructor creates all cells the same
       * To change look for individual cells put code in
       * getListCellRendererComponent method
      JTable table;
      RowHeaderRenderer2(JTable table) {
        this.table = table;
        JTableHeader header = table.getTableHeader();
        setOpaque(true);
        setBorder(UIManager.getBorder("TableHeader.cellBorder"));
        setHorizontalAlignment(CENTER);
        setForeground(header.getForeground());
        setBackground(header.getBackground());
        setFont(header.getFont());
       * Returns the JLabel after setting the text of the cell
      public Component getListCellRendererComponent(JList list,
                                                    Object value, int index,
                                                    boolean isSelected,
                                                    boolean cellHasFocus) {
        list.setBackground(table.getTableHeader().getBackground());
        setText( (value == null) ? "" : value.toString());
        return this;
    }

  • Error.  Combobox in JTable in 10.1.3 EA

    (oracle.jbo.AttrSetValException) JBO-27010: Attribute set with value oracle.jbo.server.ViewRowImpl@1b for Ediz in AppModule.UgSfpView2 has invalid precision/scale
    Type of "Ediz" is VARCHAR2(5)

    Hi,
    can you provide a step-by-step description using the EMP Table of what you did to get to this state ?
    Frank

  • Date Format Error in Jtable

    Can Somebody Guide me.I have a table in mysql database on windows 2000 which contains a short date field.Now my probem is that when I submit date values 10/01/2006 .It is entered in database as 29/12/1899 .I searched a number of websites also but nothing could help me.some examples will be helpful.
    Thanks
    sushil singh

    What's the value of inserQuery? If you print out its value and run it directly on the database does it do what you expect?
    It's often better to use a PreparedStatement to execute updates on the database:
    PreparedStatement stmt = conn.prepareStatement("INSERT INTO my_table VALUES (?)");
    stmt.setDate(1, myDate);
    stmt.executeUpdate();That way you don't have to worry about what date format you need to convert your dates into to put them into the database.
    Hope this helps.

Maybe you are looking for

  • Flash SWF not appearing in RH

    I am using TCS 4 with FM 12 and RH 11. I have an animation built in Flash and published to a SWF file. The animation is added to a FM doc. Publishing to PDF shows the animation as expected. I link an RH project to the FM book and the animation is mis

  • Photoshop to Lightroom Colour Shift

    Hi all, I've recently upgraded from CS5 to CC after purchasing a Nikon D7100 over christmas and thus needing the latest versions fro RAW support (Nikon NEF). My problem is I am experiencing colour shift between Photoshop and Lightroom after upgrading

  • Is it possible to make photos with the Ipod nano 5G?

    Is it possible to make photos with the Ipod Nano 5G?

  • Trying to track iphone

    i bought an iphone from someone; then sold it at store, can that someone find out I sold it and if it's back in service?

  • What's with all these viewing card activation reco...

    seriously I can sometimes have 20 in a week! They're a PITA the delete as I can't group delete something and have to do each one in turn