2015-09-16 64 views
0

我已成功用下面的代碼添加一個陣列到一列中TableView添加兩個數組,以兩列在JavaFX的TableView中

data = FXCollections.observableArrayList(); 

    String[] a = {"a", "b"}; 

    yearColumn.setCellValueFactory(new PropertyValueFactory<test3, String>("Year")); 
    interestColumn.setCellValueFactory(new PropertyValueFactory<test3, String>("Interest")); 
    principalColumn.setCellValueFactory(new PropertyValueFactory<test3, String>("Principal")); 
    balanceColumn.setCellValueFactory(new PropertyValueFactory<test3, String>("Balance")); 

    paymentsAnnual.setItems(data); 

    for (String anA : a) { 
     test3 test31 = new test3(); 
     test31.year.setValue(anA); 
     data.add(test31); 
    } 

test3.java現在

import javafx.beans.property.SimpleStringProperty; 

public class test3 { 

    public SimpleStringProperty year = new SimpleStringProperty(); 
    public SimpleStringProperty interest = new SimpleStringProperty(); 
    public SimpleStringProperty principal = new SimpleStringProperty(); 
    public SimpleStringProperty balance = new SimpleStringProperty(); 

    public String getYear() { 
     return year.get(); 
    } 


    public String getInterest() { 
     return interest.get(); 
    } 


    public String getPrincipal() { 
     return principal.get(); 
    } 


    public String getBalance() { 
     return balance.get(); 
    } 

} 

我有一個問題當我嘗試一次插入一個新的數組到不同的列。說我有一個數組String[] b = {"hello", "hi"},然後我添加它使用相同的每個循環,這樣的事情

for (String anA : a) { 
      test3 test31 = new test3(); 
      test31.year.setValue(anA); 
      data.add(test31); 
     } 
for (String anA1 : b) { 
      test3 test31 = new test3(); 
      test31.balance.setValue(anA1); 
      data.add(test31); 
     } 

這增加了數組,但我得到的輸出是這樣的

enter image description here

燦有誰告訴我如何將它們加在一起?

UPDATE

我應該怎麼加陣列ab在一起,這將使等的輸出這 enter image description here

UPDATE-2

我有這樣的一種方式它,通過使雙陣列

String[] a = {{"a", "b"},{"hello","hi"}}; 
for (int i = 1; i < a[0].length; i++){ 
    test3 test31 = new test3(); 
    test31.year.setValue(a[0][i]); 
    test31.balance.setValue(a[1][i]); 
    data.add(test31); 
} 

這樣我可以在同一時間在正確的行添加的內容,如果它是一個單一的陣列?

+1

問題到底是什麼?你想在「a,b」的同一行中顯示「你好,你好」嗎?如果是這樣,您需要首先從數據中獲取已創建的對象,然後將「hello,hi」添加到對象中。 – NwDev

回答

2

在TableView中的項目列表中的每個項目代表一行。

您的第一個循環添加了兩行,每行都有一個定義了year的行,但沒有定義其他屬性。

你的第二回路增加了兩個更多的行,其中每一個都具有balance定義,但沒有定義其它性質。

您必須修改,而不是增加更多的排在列表中的現有對象。