试图将类变成2D数组

时间:2014-06-05 14:11:19

标签: java arrays swing multidimensional-array

我创建了一个名为Resources的类,这个类中的构造函数和相关的get和set方法。这提供了我当时需要的功能。 但是,现在,使用Swing,我想使用存储的信息显示一个表。 我一直在使用Object类来执行此操作,它在表中提供了相同的信息。但是,我想使用Resource来存储和获取这些数据,以便许多用户可以使用不同的类或线程进行访问。这就是我陷入困境的地方,因为我无法像使用Object那样填充Resources数组。

如何解决这个问题,或者更好的解决方案,我们将不胜感激。

Object[][] resources = {{"Resource 1", 1, 1, 0, true},
          {"Resource 2", 2, 1, 1, true}, {"Resource 3", 3, 1, 2, false},
          {"Resource 4", 4, 1, 3, false}};

上面,这是我目前正在使用的Object数组。

Resources[][]res = new Resources[4][5];

上面,这个我试图实现的资源数组,但它不允许我继续添加数据 - 它请求资源而不是我拥有的数据

1 个答案:

答案 0 :(得分:1)

使用自定义表模型并直接转到资源列表以返回特定单元格的数据。像这样:

public class ResourceModel extends DefaultTableModel{

   List<Resource> resources;


   public Object getValueAt(int row, int col){
      Resource resource = resources.get(row);

      if(col == 0){
         return resource.getName();
      }
      else if(col == 1){
         return resource.getOtherThing();
      }
      //so on

   }

   public int getRowCount(){
     return resources.size();
   }

}

此处有更多信息:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data