-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P4
-
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)
======================================================================