Heyho,
ich habe mir ein Abstract TableModel erstellt, da ich Lieder in einer Tabelle abspeichern will, die in der ersten Spalte eine Checkbox haben soll, damit ich die Lieder auswählen und dann abspielen kann. Hier ist der Code dazu.
Leider sind die Checkboxes in der ersten Spalte nicht editable und ich kann mir nicht erklären, woran es liegt.
Beim Debuggen bleibt es auf jeden fall bei der Funktion is CellEditable() stehen.
Vielleicht hat jemand eine Idee und kann mir helfen
ich habe mir ein Abstract TableModel erstellt, da ich Lieder in einer Tabelle abspeichern will, die in der ersten Spalte eine Checkbox haben soll, damit ich die Lieder auswählen und dann abspielen kann. Hier ist der Code dazu.
Leider sind die Checkboxes in der ersten Spalte nicht editable und ich kann mir nicht erklären, woran es liegt.
Beim Debuggen bleibt es auf jeden fall bei der Funktion is CellEditable() stehen.
Vielleicht hat jemand eine Idee und kann mir helfen
Java:
public class SongTable extends JTable {
/**
* creates new songTable
* @param songMatrix Matrix with Data of the songs
*/
public SongTable(Object[][] songMatrix)
{
setModel(new songTableModel(songMatrix));
}
@Override
public Class<?> getColumnClass(int columnIndex)
{
if (columnIndex == 0)
return Boolean.class;
else
return String.class;
}
/**
* changes Data of the Table
* @param songMatrix Matrix with Data of the Songs
*/
public void setData(Object[][] songMatrix){
songTableModel tableModel = (songTableModel) getModel();
tableModel.setData(songMatrix);
}
private static class songTableModel extends AbstractTableModel{
private String[] header = {"","Title","Artist","Genre"};
@Override
public boolean isCellEditable(int row, int column)
{
if (column == 0)
return true;
else
return false;
}
@Override
public String getColumnName(int columnIndex) {
return header[columnIndex];
}
Object[][] songMatrix;
songTableModel(Object[][]songMatrix)
{
this.songMatrix = songMatrix;
}
void setData(Object[][] songMatrix){
this.songMatrix = songMatrix;
}
@Override
public Object getValueAt(int row, int column)
{
return songMatrix[row][column];
}
@Override
public int getRowCount() {
return songMatrix.length;
}
@Override
public int getColumnCount() {
return 4;
}
}
}