0

this is my Controller class

public class IWS5Controller  extends BaseScreenController implements Initializable{

    private Stage dialogStage;

    @FXML
    private TableView<Table1Model> table1;
    @FXML
    private TableView<Table2Model> table2;
    @FXML
    private TableView<Table3Model> table3;

    @FXML
    private TableColumn<Table1Model,String> col1;
    @FXML
    private TableColumn<Table1Model,String> col2;
    @FXML
    private TableColumn<Table2Model,Integer> col3;
    @FXML
    private TableColumn<Table2Model,Integer> col4;
    @FXML
    private TableColumn<Table3Model,Integer> col5;
    @FXML
    private TableColumn<Table3Model,Integer> col6;
    @FXML
    private TableColumn<Table3Model,Integer> col7;
    @FXML
    private TableColumn<Table3Model,String> col8;

    @FXML
    private Button closeBtn;
    @Autowired
    private ScreensContoller screenController;
    /*@Autowired
    private CheckBoxController checkboxController;*/

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        // TODO Auto-generated method stub
    }

    @FXML
    public void initialize(){
          PropertyValueFactory<Table1Model, String> first = 
                  new PropertyValueFactory<Table1Model, String>("synid");      

          PropertyValueFactory<Table1Model, String> second = 
                  new PropertyValueFactory<Table1Model, String>("help");       

          PropertyValueFactory<Table2Model, Integer> third = 
                  new PropertyValueFactory<Table2Model, Integer>("page");      

          PropertyValueFactory<Table2Model, Integer> fourth = 
                  new PropertyValueFactory<Table2Model, Integer>("line");      

          PropertyValueFactory<Table3Model, Integer> fifth = 
                  new PropertyValueFactory<Table3Model, Integer>("recordDate");    

          PropertyValueFactory<Table3Model, Integer> sixth = 
                  new PropertyValueFactory<Table3Model, Integer>("diagnosisDate");      

          PropertyValueFactory<Table3Model, Integer> seventh = 
                  new PropertyValueFactory<Table3Model, Integer>("age");       

          PropertyValueFactory<Table3Model, String> eigth = 
                  new PropertyValueFactory<Table3Model, String>("note");

          col1.setCellValueFactory(first);
          col2.setCellValueFactory(second);
          col3.setCellValueFactory(third);
          col4.setCellValueFactory(fourth);
          col5.setCellValueFactory(fifth);
          col6.setCellValueFactory(sixth);  
          col7.setCellValueFactory(seventh);
          col8.setCellValueFactory(eigth);

              //setting up the table data source
              Iws5Data data = new Iws5Data();
              ObservableList<Table1Model> table1Items = data.getData();
              ObservableList<Table2Model> table2Items = data.getData2();
              ObservableList<Table3Model> table3Items = data.getData3();
              table1.setItems( table1Items );
              table2.setItems( table2Items );
              table3.setItems( table3Items );

            closeBtn.setOnAction((ActionEvent event)->{
            dialogStage.close();
        });
    }
}

Table 1 model:

package com.iws.model;

import javafx.beans.property.FloatProperty;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class Table1Model {

    private final SimpleStringProperty synid;
    private final SimpleStringProperty help;

    public Table1Model(String synid,String help){
        this.synid = new SimpleStringProperty(synid);
        this.help = new SimpleStringProperty(help);
    }

    public String getSynid() {
        return synid.get();
    }
    public void setSynid(String synid) {
        this.synid.set( synid );
    }

    public String getHelp() {
        return help.get();
    }
    public void setHelp(String help) {
        this.help.set( help );
    }


}

Table 2 model:

package com.iws.model;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;


public class Table2Model {

    private final SimpleIntegerProperty page;
    private final SimpleIntegerProperty line;

    public Table2Model(Integer page, Integer line) {
        this.page = new SimpleIntegerProperty(page);
        this.line = new SimpleIntegerProperty(line);
    }

    public Integer getPage() {
        return page.get();
    }

    public void setPage(Integer page) {
        this.page.set( page );
    }

    public Integer getLine() {
        return line.get();
    }
    public void setLine(Integer line) {
        this.line.set( line );
    }
}

Table 3 Model:

package com.iws.model;

import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;

public class Table3Model {

    private final SimpleIntegerProperty recordDate;
    private final SimpleIntegerProperty diagnosisDate;
    private final SimpleIntegerProperty age;
    private final SimpleStringProperty note;

    public Table3Model(Integer recordDate, Integer diagnosisDate, Integer age, String note) {
        this.recordDate = new SimpleIntegerProperty(recordDate);
        this.diagnosisDate = new SimpleIntegerProperty(diagnosisDate);
        this.age = new SimpleIntegerProperty(age);
        this.note = new SimpleStringProperty(note);
    }

    public Integer getRecordDate() {
        return recordDate.get();
    }
    public void setRecordDate(Integer recordDate) {
        this.recordDate.set( recordDate );
    }

    public Integer getDiagnosisDate() {
        return diagnosisDate.get();
    }
    public void setDiagnosisDate(Integer diagnosisDate) {
        this.diagnosisDate.set( diagnosisDate );
    }

    public Integer getAge() {
        return age.get();
    }
    public void setAge(Integer age) {
        this.age.set( age );
    }
    public String getNote() {
        return note.get();
    }
    public void setNote(String note) {
        this.note.set( note );
    }
}

Data Class(hardcoded data)

package com.iws.database;

import com.iws.model.Table1Model;
import com.iws.model.Table2Model;
import com.iws.model.Table3Model;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

public class Iws5Data {

    private final ObservableList<Table1Model> data1 = 
            FXCollections.observableArrayList();

    public ObservableList<Table1Model> getData(){
        return data1;
    }
    private final ObservableList<Table2Model> data2 = 
            FXCollections.observableArrayList();

    public ObservableList<Table2Model> getData2(){
        return data2;
    }

    private final ObservableList<Table3Model> data3 = 
            FXCollections.observableArrayList();

    public ObservableList<Table3Model> getData3(){
        return data3;
    }

    public Iws5Data(){
        data1.add(new Table1Model("Synid", "help"));
        data2.add(new Table2Model(3434, 2343));
        data3.add(new Table3Model(22, 543, 5, "note"));
    }

}

All 3 tables are being shown correctly without any error. But no data in it is shown. If there is any other way of adding hardcoded data to tableview then that will also be helpfull.

SAJAL MATHUR
  • 67
  • 1
  • 2
  • 15
  • 1
    Is the `initialize` method getting called? I'm not sure what the behavior is when having both `initialize` from `Initializable` and an `@FXML`-annotated no-arg `initialize`. What happens if you move the code to the other `initialize` method? – Itai Jul 12 '17 at 13:03
  • 1
    See also: https://stackoverflow.com/questions/35278591/javafx-fxml-controller-initialize-method-not-invoked – Itai Jul 12 '17 at 13:06
  • Yes wrote code in overridden initialize and it worked. @sillyfly – SAJAL MATHUR Jul 13 '17 at 11:43

0 Answers0