首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改AbstractTableModel的列名

更改AbstractTableModel的列名
EN

Stack Overflow用户
提问于 2014-02-21 15:01:49
回答 2查看 2.6K关注 0票数 0

是否可以动态更改AbstractTableModel列名?

我正在尝试实现setColumnName(0,"Speed“)方法。

代码语言:javascript
复制
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.
}

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 15:04:12

变化

代码语言:javascript
复制
public void setColumnName(int i, String name) {
    columnNames[i,name];
}

代码语言:javascript
复制
public void setColumnName(int i, String name) {
    columnNames[i] = name;
    fireTableStructureChanged();
}

以下是@camickr的好建议

调用fireTableStructureChanged()方法将导致所有自定义呈现器/编辑器丢失。您可以使用table.setAutoCreateColumnsFromModel(..)当您创建表以防止这种情况发生时,将使用

票数 3
EN

Stack Overflow用户

发布于 2014-02-21 15:37:47

更改TableColumn:

代码语言:javascript
复制
tableColumn.setHeaderValue(...);
table.getTableHeader().repaint();

您可以通过以下方法获得TableColumn:

代码语言:javascript
复制
table.getColumn(...); // or
table.getColumnModel().getColumn(...);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21937856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档