所以我有这个代码,因为我需要将照片添加到我的JTable中,所以我需要制作一个抽象的表模型。但是,在看到这段代码后,我真的不知道它的作用,但我真的很想理解它。如果你能解释一下,那将是非常棒的! (我也不知道Icon.class在代码中做了什么)。代码如下:
public class TheModel extends AbstractTableModel {
private String[] columns;
private Object[][] rows;
public TheModel(){}
public TheModel(Object[][] data, String[] columnName){
this.rows = data;
this.columns = columnName;
}
public Class getColumnClass(int column){
// 4 is the index of the column image
if(column == 4){
return Icon.class;
}
else{
return getValueAt(0,column).getClass();
}
}
public int getRowCount() {
return this.rows.length;
}
public int getColumnCount() {
return this.columns.length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return this.rows[rowIndex][columnIndex];
}
public String getColumnName(int col){
return this.columns[col];
}
}
非常感谢每一个解释!我知道这个网站主要是为了解决编码问题,而不是解释,但我真的希望你们可以例外。
答案 0 :(得分:1)
所以我需要制作一个抽象表模型。
不,你没有。没有理由创建新的表模型。
您可以扩展DefaultTableModel
并覆盖getColumnClass(...)
方法。
(我也不知道Icon.class在代码中做了什么
这将告诉表格列中存储的数据类型,以便表格可以使用适当的渲染器来显示数据。那就是你想看到的图像不是文字。
阅读How to Use Tables上Swing教程中的部分,了解有关表如何工作的基础知识的更多信息。