【问题标题】:JavaFX: TableView(fxml) filling with dataJavaFX:TableView(fxml) 填充数据
【发布时间】:2013-06-27 09:35:51
【问题描述】:

要么我看了很久......要么我没有真正理解它。

在任何情况下,我都试图用数据填充使用 fxml(包括列)创建的 tableview。

我的代码适用于第一列(标题),但不适用于其余列。

(是的,“数据”中包含所有信息...通过调试检查。)

那么谁能告诉我我做错了什么??

这里(希望所有相关的)代码(一起复制):

@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);
    }
}

谢谢!

【问题讨论】:

  • 这真的很奇怪,它不起作用。我执行与您完全相同的代码,并且可以正常工作。你的 tableview 声明在哪里?你已经正确地写了@FXML Tableview tb_results ?

标签: javafx tableview


【解决方案1】:

好的,

这足以让我得到答案。

getter 和 setter 需要在 get/set 之后有一个大写字母。

例如public String getTitle() vs public String gettitle()

不太清楚为什么 java 会强制这样做......

无论如何感谢jewelsea 对另一个问题的回答。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2017-05-24
    • 2014-07-22
    • 1970-01-01
    • 2016-02-16
    • 2021-03-05
    • 2017-10-26
    • 2014-09-08
    • 2015-05-10
    相关资源
    最近更新 更多