2013-06-29 39 views
0

要麼我看着它很久...或者我沒有真正理解它。JavaFX:TableView(fxml)填充數據

在任何情況下,我想填充使用fxml(包括列)與數據創建的tableview。

我的代碼適用於第一個(標題)列,但不適用於其餘部分。

(是「數據」已經在它所有的信息...檢查與調試。)

這樣可以ANY1告訴我,我在做什麼錯?

這裏(希望所有相關的)代碼(一起復制):

@FXML private TableColumn<sresult,String> cl_title; 
@FXML private TableColumn<sresult, String> cl_url; 
@FXML private TableColumn<sresult, String> cl_poster; 
@FXML private TableColumn<sresult, String> cl_date; 
@FXML private TableColumn<sresult, String> cl_forum; 

    String[][] search_res=null; 
    try { 
     search_res= search(tf_search.getText()); 
    } catch (MalformedURLException | SolrServerException | ParseException ex) { 
     Logger.getLogger(MainUiController.class.getName()).log(Level.SEVERE, null, ex); 
    } 

    final ObservableList<sresult> data= FXCollections.observableArrayList(); 
    for (String[] s : search_res){ 
     data.add(new sresult(s[0], s[2],s[3],s[4],s[1])); 
    } 


    cl_title.setCellValueFactory(
      new PropertyValueFactory<sresult,String>("Title")); 
    cl_poster.setCellValueFactory(
      new PropertyValueFactory<sresult,String>("poster")); 
    cl_date.setCellValueFactory(
      new PropertyValueFactory<sresult,String>("date")); 
    cl_forum.setCellValueFactory(
      new PropertyValueFactory<sresult,String>("forum")); 
    cl_url.setCellValueFactory(
      new PropertyValueFactory<sresult,String>("link"));   
    tb_results.setItems(data); 



public class sresult { 
    private final SimpleStringProperty Title; 
    private final SimpleStringProperty poster; 
    private final SimpleStringProperty date; 
    private final SimpleStringProperty forum; 
    private final SimpleStringProperty link; 

    public sresult(String T, String p, String d, String f, String l) { 
     this.Title = new SimpleStringProperty(T); 
     this.poster = new SimpleStringProperty(p); 
     this.date = new SimpleStringProperty(d); 
     this.forum = new SimpleStringProperty(f); 
     this.link = new SimpleStringProperty(l); 
    } 

    public String getTitle() { 
     return Title.get(); 
    } 
    public void setTitle(String T) { 
     Title.set(T); 
    } 

    public String getposter() { 
     return poster.get(); 
    } 
    public void setposter(String p) { 
     poster.set(p); 
    } 

    public String getdate() { 
     return date.get(); 
    } 
    public void setdate(String d) { 
     date.set(d); 
    } 
    public String getforum() { 
     return forum.get(); 
    } 
    public void setforum(String f) { 
     forum.set(f); 
    } 

    public String getlink() { 
     return link.get(); 
    } 
    public void setlink(String l) { 
     link.set(l); 
    } 
} 

謝謝!

+0

真的很奇怪,它不工作。我和你的代碼完全一樣,它的工作。你的tableview聲明在哪裏?你有正確的寫@FXML Tableview tb_results? –

+0

可能的[Javafx PropertyValueFactory不填充Tableview]的重複(http://stackoverflow.com/questions/17035478/javafx-propertyvaluefactory-not-populating-tableview) – jewelsea

回答

3

好的,

這是足夠模擬的,我可以得到答案。

獲取/設置後,getter和setter需要有大寫字母。

例如公共字符串的getTitle()與公共字符串的getTitle()

真的不知道爲什麼Java是迫使這...

反正感謝jewelsea他對其他問題的回答。