Hallo,
ich habe folgendes Problem, ich will in meinen JTable einen Row hinzufügen, bekomme aber immer die Fehlermeldung:
java.lang.ArrayIndexOutOfBoundsException: -1
Hier mein DefaultTableModel:
Und vielleicht noch eins, weiss jemand wie ich es hinbekomme, das die Zelle in einer Tabelle zum schreiben nur aktiviert wird, wenn ich darauf doppelt klicke. Ich weiß wie ich den doppelclick abfangen muss, aber nicht wie
ich den Focus (der vom Editieren und nicht der vom auswählen) hinbekomme.
Wäre sehr dankbar für eine Lösung.
MfG
magix
ich habe folgendes Problem, ich will in meinen JTable einen Row hinzufügen, bekomme aber immer die Fehlermeldung:
java.lang.ArrayIndexOutOfBoundsException: -1
Hier mein DefaultTableModel:
Code:
import javax.swing.table.DefaultTableModel;
public class ProviTableModel extends DefaultTableModel {
private static final long serialVersionUID = 1L;
int laenge = 0;
int laenge2 = 0;
String[][] data = new String[0][0];
String[] data2 = new String[0];
boolean isEditAble = true;
public ProviTableModel(){
}
public ProviTableModel(String[] ueberschrift, String[][] zeilen){
laenge = ueberschrift.length-1;
laenge2 = zeilen.length;
data = zeilen;
data2 = ueberschrift;
}
public String getHiddenValue(int row, int col){
String text = "";
text = data[row][col];
return text;
}
public boolean isCellEditable(int a, int b){
return isEditAble;
}
public int getColumnCount(){
return laenge;
}
public int getRowCount(){
return laenge2;
}
public Object getValueAt(int row, int col) {
return (Object)data[row][col];
}
public void setValueAt(Object o, int r, int c){
data[r][c] = (String)o;
fireTableCellUpdated(r, c);
}
public String getColumnName (int col) {
return data2[col];
}
public Class getColumnClass(int col) {
return getValueAt(0,col).getClass();
}
public void setEditAble(boolean edit){
isEditAble = edit;
}
public void insertRow(String[] d)
{
String[][] a = new String[0][0];
a = data;
data = new String[laenge2+1][laenge+1];
//System.out.println(laenge2+","+laenge);
for(int i=0;i<laenge2;i++){
for(int j=0;j<laenge+1;j++){
data[i][j] = a[i][j];
//System.out.println(a[i][j]);
}
}
//System.out.println(laenge2);
for(int k=0;k<(laenge+1);k++){
//System.out.println(d[k]);
data[laenge2][k] = d[k];
System.out.println(data[laenge2][k]);
}
//this.fireTableStructureChanged();
//fireTableCellUpdated(laenge2, laenge);
//this.fireTableRowsInserted(laenge2+1,laenge+1);
laenge2++;
//this.fireTableStructureChanged();
this.fireTableDataChanged();
}
}
Und vielleicht noch eins, weiss jemand wie ich es hinbekomme, das die Zelle in einer Tabelle zum schreiben nur aktiviert wird, wenn ich darauf doppelt klicke. Ich weiß wie ich den doppelclick abfangen muss, aber nicht wie
ich den Focus (der vom Editieren und nicht der vom auswählen) hinbekomme.
Wäre sehr dankbar für eine Lösung.
MfG
magix