Hallo,
ich habe neulich mit dem Thema JTable begonnen. Jetzt will ich, dass eine Spalte x nicht editierbar ist.
Laut einigen Internetseiten müsste dieser Code funktionieren. Ich habe eine eigene Klasse, wo die Tabelle erstellt wird:
Irgendwas stimmt wahrscheinlich mit isCellEditable nicht.
Danke für Antworten
ich habe neulich mit dem Thema JTable begonnen. Jetzt will ich, dass eine Spalte x nicht editierbar ist.
Laut einigen Internetseiten müsste dieser Code funktionieren. Ich habe eine eigene Klasse, wo die Tabelle erstellt wird:
Java:
import java.util.*;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.*;
public class Tasktable extends AbstractTableModel{
String[] titles = {"ID","Name:", "Eingetragen am:", "zu Erledigen bis:"};
Object[][] eintraege =
{
{new Integer(1),"Hausaufgaben", new Date(), new Date() },
{new Integer(2),"Müll wegbringen", new Date(), new Date()},
{new Integer(3),"Müll wegbringen", new Date(), new Date()},
{new Integer(4),"Müll wegbringen", new Date(), new Date()},
{new Integer(5),"Müll wegbringen", new Date(), new Date()},
{new Integer(6),"Müll wegbringen", new Date(), new Date()},
{new Integer(7),"Müll wegbringen", new Date(), new Date()},
{new Integer(8),"Müll wegbringen", new Date(), new Date()},
{new Integer(9),"Müll wegbringen", new Date(), new Date()},
{new Integer(10),"Müll wegbringen", new Date(), new Date()},
{new Integer(11),"Müll wegbringen", new Date(), new Date()},
};
JTable tabelle = new JTable(eintraege, titles);
JScrollPane tablecontainer = new JScrollPane(tabelle);
public Tasktable(){
tablecontainer.setBounds(10, 15, 475, 120);
setColumns();
}
public void setColumns(){
TableColumn spalten = null;
for(int i = 0; i<4; i++){
spalten = tabelle.getColumnModel().getColumn(i);
if(i==0){
spalten.setPreferredWidth(20);
}
if(i==1){
spalten.setPreferredWidth(175);
}
if(i==2){
spalten.setPreferredWidth(140);
}
if(i==3){
spalten.setPreferredWidth(140);
}
}
}
public int getColumnCount(){return titles.length;} //Anzahl Spalten ausgeben
public int getRowCount(){return eintraege.length;} //Anzahl Zeilen ausgeben
public String getColumnName(int spalte){return titles[spalte];} //Name einer Spalte ausgeben
public Object getValueAt(int zeile, int spalte){return eintraege[zeile][spalte];} //Wert an einem bestimmten Punkt ausgeben
public boolean isCellEditable(int zeile, int spalte){
if(zeile == 1 && spalte == 1){
return false;
}
else{
return true;
}
}
}
Irgendwas stimmt wahrscheinlich mit isCellEditable nicht.
Danke für Antworten