09. april 2025 - 15:09
#2
Tak
Jeg prøver at lave en tabel, hvori jeg ønsker at samtlige kolonner er iditerbare, men hvordan skal dette gøres ?
Jeg har en skitse til en tabel, spørgsmålet vedrører linie 38.
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
public class MyTableModel extends AbstractTableModel { // Husk dette
private String[] columnNames = {"Navn","Køn","Alder" }; //Kolonne navne
private Object[][] data = { // Føje data
{"Alice", "Kvinde", 25}, // Specifikke data
{"Bob", "Mand", 30},
{"Cathy", "Kvinde", 22},
{"Jens" , "Mand", 32}
};
@Override
public int getRowCount() {
return data.length; //Antal rækker
}
@Override
public int getColumnCount() {
return columnNames.length; // Antal kolonner
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex]; //Værdi i en specifik celle
}
@Override
public String getColumnName(int columnIndex) {
return columnNames[columnIndex]; // Kolonne navn
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return columnIndex == 2; // Kun kolonnen "Alder" er editirbar, HER VIL JEG GØRE SAMTLIGE KOLONNER EDITIRBARE - men hvordan ??
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {// Opdaterer værdien i een specifik celle
data[rowIndex][columnIndex] = aValue; // Opdaterer værdien ; Meget vigtig
fireTableCellUpdated(rowIndex, columnIndex); // Notify listeners, Husk dette
}
public static void main(String[] args) {
JFrame frame = new JFrame("Eksempel på en tabel ( JTabel)");
MyTableModel model = new MyTableModel();
JTable table = new JTable(model);
frame.add(new JScrollPane(table));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
09. april 2025 - 15:40
#3
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return columnIndex == 2;
}
->
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}