2017-08-01 36 views
1

我在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. 

謝謝。

+0

什麼'任務'類你的意思是? Afaik沒有擺動,從方法名稱看來它是一個自定義類,所以改變返回類型有什麼問題?除此之外,您還可以考慮將對錶模型的引用傳遞給該方法並在其中添加數據。 – Thomas

回答

1

只是重新定義你的方法如下:

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

我試過了,但後來要我初始化變量。 – user982467

+0

然後在您嘗試返回數據之前數據未被初始化。 –

0

變化從voidObject[]返回類型的方法,並在你的方法的末尾添加return data;

+0

我試過,但後來要我初始化變量。 – user982467

+0

'因爲它應該是Object [] data = new Object [] {/ * whatever here * /};' – Vivick

0

想回到這個

然後更改方法的返回類型,不能因爲空返回沒有空......你需要的東西,如:

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

它仍然要求我添加一個返回類型。 – user982467

+0

不可能的兄弟,你有這個:**返回新的對象[] {名稱,dueDate,優先級}; ** –

+0

https://snag.gy/feOymQ.jpg – user982467

0

根據tasks.size(),您可以擁有許多任務名稱,日期和優先級。我建議改爲返回List<String[]>。例如:

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; 
} 
+0

第二次看到這一點,這不會讓人不知所措。你爲什麼不只是訪問你的任務變量或返回任務? – Eritrean