我有以下代码:重写“getValueAt”中AbstractTableModel的绑定映射到JTable中
class Files {
private static String files;
private static String duration;
private static String status;
public Files(String files, String duration, String status) {
this.files = files;
this.duration = duration;
this.status = status;
}
public static String getfiles() {
return files;
}
public static String getduration() {
return duration;
}
public static String getstatus() {
return status;
}
}
Map<Files, String> hmap = new HashMap<Files,String>();
private void AddFiles(String addfile,String addurr,String addstatus, String addpath){
Files f = new Files(addfile, addurr, addstatus);
hmap.put(f, addpath);
}
final JTable table = new JTable();
table.setBounds(26, 27, 664, 274);
table.setModel(new MyTableModel());
所以我创建一个新表并重写“getValueAt”。
class MyTableModel extends AbstractTableModel {
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return Files.getfiles();
case 1:
return Files.getduration();
case 2:
return Files.getstatus();
default:
throw new IndexOutOfBoundsException();
}
}
}
但我无法从HashMap类“文件”中的变量加载到JTable中。有人可以告诉我我做错了什么吗?我现在基本上已经停留了3天,真的很感谢一些帮助。
感谢您的输入。对Java很新。所以我希望文件中的3个变量(文件,持续时间和状态)在JTable中显示为三列。 – Omid 2013-04-06 12:32:46
和地图有什么关系?你想在表中显示一个文件,因此它有1行3列吗?你是否已经根据我已经给你的指示开始修复你的代码? – 2013-04-06 12:44:02
是,1行3列。但只要在地图中添加值,它们也会被添加到JTable中。是的,我删除了所有静态。 – Omid 2013-04-06 12:47:42