JavaFX, usando TableView com TableModel ?

Estou estudando JavaFX e estou procurando como criar TableModel para as TableView. Estou seguindo este exemplo: http://code.makery.ch/library/javafx-8-tutorial/pt/part2/
O problema eh que o Usuário adicionado não exibe na Table.

Como fazer isso ?

Estou tentando assim.

Model

@Entity
public class Usuario implements Serializable{
    private static final long serialVersionUID = 1L;
    
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    
    @NotNull
    private String nome;
    
    @NotNull
    private String login;
    
    @NotNull 
    private String senha;
    
    // 1 admin, 0 atendente
    private Integer perfil = 1;
    
    // 1 ativo, 0 inativo
    private Integer status = 1;

    public Usuario() {
    }

    public Usuario(String nome, String login, String senha) {
        this.nome = nome;
        this.login = login;
        this.senha = senha;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Integer getPerfil() {
        return perfil;
    }

    public void setPerfil(Integer perfil) {
        this.perfil = perfil;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
    
}

TableModel

public class UsuarioTableModel{
    
    private ObservableList<Usuario> lista = FXCollections.observableArrayList();
    
    public void addUsuario(Usuario u){
        lista.add(u);        
    }
    
    public Usuario getUsuario(Integer row){
        return lista.get(row);
    }
    
    public Integer getSizeList(){
        return lista.size();
    }
    
    public ObservableList<Usuario> getObjservableList(){
        return lista;
    }
            
}

Controller

public class AgendaCtrl {
    
    private static final Logger log = LoggerFactory.getLogger(AgendaCtrl.class);
    private UsuarioTableModel utm = new UsuarioTableModel();
    
    @FXML 
    private TableView<Usuario> gridAgenda;
        
    public void onClickBtNovo(ActionEvent evt){        
        utm.addUsuario(new Usuario("fernando", "fernando", "123"));
        log.info(utm.getSizeList() + "");
        gridAgenda.setItems(utm.getObjservableList());
    }
     
}

Olá,
Você está definindo as colunas?
Não vejo no seu código em nenhum momento a definição das colunas do TableView.