Hallo Experten,
ich habe folgendes Problem:
Ich lege in einem Frame eine jTable an, die auch wunderbar funktioniert.
Allerdings würde ich gerne verhindern, dass der Benutzer die Tabelleninhalte verändern kann. Ich habe schon auf div. Seiten im Netz nach einer Lösung gesucht, jedoch nur folgendes gefunden:
import javax.swing.table.DefaultTableModel
/**
* Diese Klasse repräsentiert das Datenmodell für eine oder mehrere
* Tabellen
*
* Die Zuweisung geschieht über JTable.setModel(new YourTableModel()));
*/
public class MyTableModel extends DefaultTableModel {
/**
* aus der API: Returns true if the cell at rowIndex and columnIndex
* is editable. Otherwise, setValueAt on the cell will not change the
* value of that cell.
*/
public boolean isCellEditable(int row, int column) {
return false;
}
}
Wenn ich das als seperate Klasse anlege kommen bei der Anweisung
jTable1.setModel(new MyTableModel());
immer folgende Laufzeitfehler zum Vorschein:
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at Bestellfenster.initBestellfenster(Bestellfenster.java:111)
at Bestellfenster.(Bestellfenster.java:40)
at Hauptnavigation.btnBestellungen_actionPerformed(Hauptnavigation.java:150)
at Hauptnavigation$1.actionPerformed(Hauptnavigation.java:72)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:258)
at java.awt.Component.processMouseEvent(Component.java:5022)
at java.awt.Component.processEvent(Component.java:4819)
at java.awt.Container.processEvent(Container.java:1525)
at java.awt.Component.dispatchEventImpl(Component.java:3527)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3359)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3074)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3004)
at java.awt.Container.dispatchEventImpl(Container.java:1568)
at java.awt.Window.dispatchEventImpl(Window.java:1586)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
Kann mir jemand sagen, was ich falsch mache?
Danke,
Benjamin