using non-default TableColumnModel causes exception

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P4
    • 1.3.0
    • Affects Version/s: 1.3.0
    • Component/s: client-libs
    • kestrel
    • generic
    • generic



      Name: wl91122 Date: 09/09/99


      The code listed after the stack dump causes the following
      exception to be thrown when run under JDK1.3beta for Win32. It works
      properly under JDK1.2.2. If JTable creates the
      TableColumnModel, it works under both versions.

      Under Solaris 2.7, the exception is thrown if you click on either cell once.

      java version "1.3beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3beta-O)
      Java(TM) HotSpot Client VM (build 1.3beta-O, mixed mode)

      Exception occurred during event dispatching:
      java.lang.ArrayIndexOutOfBoundsException: -1 < 0
              at java.util.Vector.elementAt(Vector.java:419)
              at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:267)
              at javax.swing.JTable.getCellRect(JTable.java:1780)
              at javax.swing.plaf.basic.BasicTableUI$FocusHandler.repaintAnchorCell(BasicTableUI.java:386)
              at javax.swing.plaf.basic.BasicTableUI$FocusHandler.focusGained(BasicTableUI.java:391)
              at java.awt.AWTEventMulticaster.focusGained(AWTEventMulticaster.java:164)
              at java.awt.Component.processFocusEvent(Component.java:3536)
              at javax.swing.JComponent.processFocusEvent(JComponent.java:1990)
              at java.awt.Component.processEvent(Component.java:3432)
              at java.awt.Container.processEvent(Container.java:1253)
              at java.awt.Component.dispatchEventImpl(Component.java:2529)
              at java.awt.Container.dispatchEventImpl(Container.java:1302)
              at java.awt.Component.dispatchEvent(Component.java:2443)
              at java.awt.LightweightDispatcher.processFocusEvent(Container.java:2239)
              at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2196)
              at java.awt.Container.dispatchEventImpl(Container.java:1289)
              at java.awt.Window.dispatchEventImpl(Window.java:854)
              at java.awt.Component.dispatchEvent(Component.java:2443)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:302)
              at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:105)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:95)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:86)

      /* this example works properly under JDK1.2.2 but
        causes an exception to be thrown under JDK1.3beta-O
      */

      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.table.*;

      public class TableColumnModelExample extends JFrame {

        public TableColumnModelExample(String title) {
          super(title);

          TableModel dataModel = new TableExampleData();

          JTable tbl = new JTable();
          tbl.setAutoCreateColumnsFromModel(false);
          tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
          tbl.setModel(dataModel);

          DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
          TableColumn col = new TableColumn(0);
          col.setHeaderValue(dataModel.getColumnName(0));
          columnModel.addColumn(col);
          tbl.setColumnModel(columnModel);
          getContentPane().add(new JScrollPane(tbl));
        }

        public static void main(String[] args) {
          TableColumnModelExample f = new TableColumnModelExample("Table Column Model Example");

          f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
          f.addWindowListener(new WindowAdapter() {
              public void windowClosing(WindowEvent e) {
                Window w = e.getWindow();
                w.setVisible(false);
                w.dispose();
              }
              public void windowClosed(WindowEvent e) {
                System.exit(0);
              }
            });
          f.pack();
          f.setVisible(true);
        }

        public static class TableExampleData extends DefaultTableModel {
          public TableExampleData() {
            super(new Object[][]
                {
                {"a","b","c","d","e","f"},
                {"A","B","C","D","E","F"}
                },
                new Object[]
                {
                "1st","2nd","3rd","4th","5th","6th"
                }
              );
          }
        }
      }
      (Review ID: 94867)
      ======================================================================

            Assignee:
            Philip Milne (Inactive)
            Reporter:
            William Lee (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: