0

I'm trying to populate a TableView that consists of two columns (name and email), but the columns remain empty.

Here's the controller code:

public class GUIMainController 
{
   @FXML private TableView<Member> tableMembers;

   @FXML private TableColumn<Member, String> tcMemberName;
   @FXML private TableColumn<Member, String> tcMemberEmail;

   public void initialize() 
   {
    tcMemberName.setCellValueFactory(new PropertyValueFactory<Member, String>("name"));
    tcMemberEmail.setCellValueFactory(new PropertyValueFactory<Member, String>("email"));

    tableMembers.setItems(getList());
   }

   public ObservableList<Member> getList()
   {
     ObservableList<Member> members = FXCollections.observableArrayList();

     members.add(new Member("Frank","frankie678@gmail.com"));

     System.out.println(members);
     return members;        
   }
}

And the constructor for data:

public Member(String name, String email)
{
    this.name = name;
    this.email = email;
}
public String getMemberName()
{
    return this.name;
}

public void setMemberName(String name)
{
    this.name = name;
}

public String getMemberEmail()
{
    return this.email;
}

public void setMemberEmail(String email)
{
    this.email = email;
}

I can see the correct data on the console, but it does not show in the table itself.

Can anyone help? Thanks in advance!

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
RollerMobster
  • 864
  • 1
  • 10
  • 28
  • 2
    You need to have the proper getters (or property-getters) in your model class. See linked question. – Itai Dec 06 '17 at 12:47

1 Answers1

0

Thanks, I ended up by removing my getters and setters and generating them inside Eclipse. Worked like a charm!

RollerMobster
  • 864
  • 1
  • 10
  • 28