Initialisierungsproblem mit TableModel

Patrick Kamin

Erfahrenes Mitglied
Hallo Leute,
Code:
DefaultTableModel dtm = new DefaultTableModel();
        String [][] odata = new String[][] { {"test1", "test2", "test3"},
                                             {"test1", "test2", "test3"}  };
                                               
        String [] header = new String [] {"nr 1", "nr 2", "nr 3"};
        dtm.setDataVector(odata, header);
        jTable1.setModel(dtm);
        jTable1.updateUI();

java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
at java.util.Vector.elementAt(Vector.java:431)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:618)
at javax.swing.JTable.getValueAt(JTable.java:1771)
at javax.swing.JTable.prepareRenderer(JTable.java:3724)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:1149)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1051)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:974)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:541)
at javax.swing.JComponent.paint(JComponent.java:808)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4787)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4740)
at javax.swing.JComponent._paintImmediately(JComponent.java:4685)
at javax.swing.JComponent.paintImmediately(JComponent.java:4488)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
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)
Das Programmstück liegt bei mir in einer Ereignisprozedur. Anscheind habe ich gerade ein Brett vorm Kopf, aber ich kann mir die Fehlermeldung nicht erklären.
Vielen Dank schon mal für die Hilfe
Gruß Patrick
 
Zuletzt bearbeitet:
Ich habe dein Beispiel gerade bei mir auf dem PC kompiliert, habe aber keine Fehlermeldung bekommen, weder beim Kompilieren, noch beim Ausführen.
 
Hallo!

Bei mir läufts auch sofort:

Code:
import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/*
 * Created on 11.06.2004
 */

/**
 * @author Administrator
 */
public class TableExample extends JFrame {

	private JTable table;
	private DefaultTableModel model;
	private JScrollPane scrollPane;

	public TableExample() {
		super("TableExample");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		table = new JTable();
		model = new DefaultTableModel();
		String[][] odata = new String[][] { { "test1", "test2", "test3" }, {
				"test1", "test2", "test3" }
		};

		String[] header = new String[] { "nr 1", "nr 2", "nr 3" };
		model.setDataVector(odata, header);
		table.setModel(model);
		

		scrollPane = new JScrollPane();
		scrollPane.getViewport().add(table);

		getContentPane().setLayout(new BorderLayout());
		getContentPane().add(scrollPane,BorderLayout.CENTER);
		setVisible(true);
		pack();

	}

	public static void main(String[] args) {
		new TableExample();
	}
}

Gruß Tom
 
Zurück