У меня есть серьезные проблемы, удаление строки из моей JTable, мой код такой же, как то, что я видел, когда я пытался узнать AbstractTableModel:удаление и добавление строк в JTable, используя AbstractTableModel
import javax.swing.table.AbstractTableModel;
public class MyTableModel extends AbstractTableModel {
boolean DEBUG = true;
input_Data input = new input_Data();
String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
Object[][] data = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
if (col < 2) {
return false;
} else {
return true;
}
}
public void removeRow(Row)
{
fireTableRowsDeleted(Row,Row);
}
}
Но проблема что ничего не происходит, когда я вызываю removeRow !! Я думаю, что, возможно, мне тоже нужно редактировать данные, но как? Я новичок в java, и я действительно попал в эту проблему ...
Используйте 'DefaultTableModel'. Он поддерживает метод removeRow(). – camickr
Я не могу, мне нужен флажок в моей таблице, поэтому я не могу использовать DefaultTableModel – Marjan
Нет причин, по которым вы не можете использовать DefaultTableModel. Вы просто сохраняете логическое значение в TableModel и переопределяете метод getColumnClass (...) 'для возврата Boolean, и в таблице будет выбран соответствующий рендерер. Нет причин создавать совершенно новый класс, чтобы переопределить единственный метод класса. – camickr