【问题标题】:How to return the array in my method?如何在我的方法中返回数组?
【发布时间】:2017-08-01 14:05:38
【问题描述】:

我在Task 类中有如下方法。如下:

public void populateJTable(){
    for (int i = 0; i < tasks.size(); i++){
           String name = tasks.get(i).getTaskName();
           String dueDate = tasks.get(i).getTaskPriority();
           String priority = tasks.get(i).getTaskPriority();

           Object[] data = {name, dueDate, priority}; //would like to return this
    }}

我想从方法中返回Object [] data ...,以便我可以将它添加到我的GUI 类中的JTable 中。我该怎么做。我的GUI 课程如下:

String[] columnNames = {"Task", "Due Date", "Priority"};
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0);
table = new JTable(tableModel);
scrollPane.setViewportView(table);
tableModel.add(data); // would like to add the data here from the populateJTable method.

谢谢。

【问题讨论】:

  • Task 类是什么意思? Afaik 在 swing 中没有任何内容,从方法名称来看,它看起来是一个自定义类,那么仅更改返回类型有什么问题?除此之外,您还可以考虑将表模型的引用传递给该方法并在那里添加数据。

标签: java arrays swing jtable


【解决方案1】:

只需重新定义您的方法如下:

public Object[] pupulateJTable() {
    ....
    return data;
}

【讨论】:

  • 我试过了,但它要求我初始化变量。
  • 那么数据在你尝试返回之前没有被初始化。
【解决方案2】:

将方法的返回类型从void 更改为Object[],并在方法末尾添加return data;

【讨论】:

  • 我试过了,但它要求我初始化变量。
  • 那是因为它应该是Object[] data = new Object[]{/*whatever here*/};
【解决方案3】:

想退货

然后改变方法的返回类型,它不能是 void,因为 void 什么都不返回......你需要类似的东西:

public Object[] pupulateJTable() {
    // TODDY....
    return new Object[]{name, dueDate, priority}; 
}

【讨论】:

  • 它仍然要求我添加返回类型。
  • 不可能的兄弟,你有这个:return new Object[]{name, dueDate, priority};
【解决方案4】:

根据 tasks.size(),您可以有许多任务名称、日期和优先级。我建议改为返回List&lt;String[]&gt;。示例:

public List<String[]> populateJTable(){
    List<String[]> list = new ArrayList<>();
    for (int i = 0; i < tasks.size(); i++){
           String name = tasks.get(i).getTaskName();
           String dueDate = tasks.get(i).getTaskPriority();
           String priority = tasks.get(i).getTaskPriority();

           list.add(new String[]{name, dueDate, priority}); 
    }
    return list;
}

【讨论】:

  • 第二次看这个没有任何意义。为什么不直接访问任务变量或返回任务?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2021-11-25
  • 2014-11-20
  • 2014-11-01
  • 2017-01-02
相关资源
最近更新 更多