JavaFX:TableView:获取选定的行单元格值 [英] JavaFX: TableView: get selected row cell values

查看:893
本文介绍了JavaFX:TableView:获取选定的行单元格值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在一个TableView看起来像这样的项目:

I'm working on a project where the TableView looks like this:

里面的数据是一个MySQL数据库,我使用了modell和一个observableArrayList来获取它们.

The datas are inside are a MySQL database, and I use a modell and an observableArrayList to get them.

我想做一个初始化方法,该方法读取整个选定的行并将其保存到TextField中(例如Name-Name,Address-Address等).我尝试过此操作,现在可以选择整行"数据,但不能将其拆分为字符串以设置TextField文本:

I want to make an initialize method which read the whole selected Line and save it into the TextFields (like Name-Name, Address - Address etc). I tried with this, and now I can Select the Whole Line data, but can't split it into Strings to set the TextField texts:

ListViewerModell details = (ListViewerModell) table.getSelectionModel().getSelectedItem();

//Checking if any row selected
if (details != null) {
//??? - split
editName.setText("*Name*");
editAddress.setText("*Address*");
}

尝试使用模型getName(),getAdress()方法,但是我得到了NullPointerException和TablePos方法.

Tried with the modell getName(), getAdress() methods but I got NullPointerException and TablePos methods.

推荐答案

// create table
TableView<Person> table = new TableView<Person>();

// create columns
TableColumn<Person, String> nameCol = new TableColumn<Person, String>("Name");
nameCol.setCellValueFactory(new PropertyValueFactory("name"));

TableColumn<Person, Address> addressCol = new TableColumn<Person, String>("Address");
addressCol.setCellValueFactory(new PropertyValueFactory("address"));

// add columns 
table.getColumns().setAll(nameCol, addressCol);

// get data from db, return object List<Person> from DB 
ObservableList<Person> persons = getPersonsFromDB();
table.setItems(persons);

tableView.setOnMouseClicked((MouseEvent event) -> {
    if (event.getClickCount() > 1) {
        onEdit();
    }
});

public void onEdit() {
    // check the table's selected item and get selected item
    if (table.getSelectionModel().getSelectedItem() != null) {
        Person selectedPerson = table.getSelectionModel().getSelectedItem();
        nameTextField.setText(selectedPerson.getName());
        addressTextField.setText(selectedPerson.getAddress());
    }
}

这篇关于JavaFX:TableView:获取选定的行单元格值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆