是否可以动态更改AbstractTableModel列名?
我正在尝试实现setColumnName(0,"Speed“)方法。
public class MyModel extends AbstractTableModel {
private String[] columnNames = {"Speed", "Pressure",
"Force"};
public ArrayList<Values> list;
public MyModel() {
list = new ArrayList<Values>();
}
public void setColumnName(int i, String name) {
columnNames[i,name];
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}}
发布于 2014-02-21 15:04:12
变化
public void setColumnName(int i, String name) {
columnNames[i,name];
}至
public void setColumnName(int i, String name) {
columnNames[i] = name;
fireTableStructureChanged();
}以下是@camickr的好建议
调用fireTableStructureChanged()方法将导致所有自定义呈现器/编辑器丢失。您可以使用table.setAutoCreateColumnsFromModel(..)当您创建表以防止这种情况发生时,将使用
发布于 2014-02-21 15:37:47
更改TableColumn:
tableColumn.setHeaderValue(...);
table.getTableHeader().repaint();您可以通过以下方法获得TableColumn:
table.getColumn(...); // or
table.getColumnModel().getColumn(...);https://stackoverflow.com/questions/21937856
复制相似问题