Den*_*niz 2 java swing jtable abstracttablemodel
我"method is never used locally"
在实现该removeRow
方法后收到消息.我也无法使用/访问此方法.
class TableModel extends AbstractTableModel {
private String[] columnNames = {"ID", "Name"};
ArrayList<Entry> list;
public TableModel(Entry[] entries) {
// assigns entries to list
}
public int getColumnCount() {
return columnNames.length;
}
public String getColumnName(int col)
{
return columnNames[col];
}
public int getRowCount() {
return list.size();
}
// this method gives a "never used locally" message
public void removeRow(int row)
{
list.remove(row);
fireTableRowsDeleted(row, row);
}
public Object getValueAt(int row, int col) {
Entry entry = list.get(row);
if(entry != null)
{
switch (col) {
case 0:
return entry.getId();
case 1:
return entry.getName();
default:
return "";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,removeRow(int row)
当delete
按下按钮时,我尝试通过以下方式访问:
public void actionPerformed(ActionEvent event)
{
int i =1;
table.getModel().removeRow(i); // removeRow not recognised
}
Run Code Online (Sandbox Code Playgroud)
class TableModel extends AbstractTableModel {
Run Code Online (Sandbox Code Playgroud)
TableModel
是一个界面.为您的班级使用更好的名字.(我不知道当你尝试使类名与接口名相同时会发生什么).相反,你应该使用类似的东西:
class EntryTableModel extends AbstractTableModel {
Run Code Online (Sandbox Code Playgroud)
由于您的模型用于包含"Entry"对象.
table.getModel().removeRow(i);
Run Code Online (Sandbox Code Playgroud)
上面的代码令人困惑,因为该getModel()
方法返回一个TableModel
,但这真的是TableModel接口还是TableModel类?
要使用自定义模型,您的代码应该类似于:
TableModel model = table.getModel();
EntryTableModel entryModel = (EntryTableModel)model;
entryModel.removeRow(i);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
63 次 |
最近记录: |