繁体   English   中英

JavaFX TableView如何获取单元格的数据?

[英]JavaFX TableView how to get cell's data?

我正在使用该方法来获取整个对象。

tableView.getSelectionModel().getSelectedItem()

如何从单个单元格获取数据? 在此处输入图片说明
我的意思是像将S20BJ9DZ300266用作String吗?

假设您知道已选择某项,则可以执行

TablePosition pos = table.getSelectionModel().getSelectedCells().get(0);
int row = pos.getRow();

// Item here is the table view type:
Item item = table.getItems().get(row);

TableColumn col = pos.getTableColumn();

// this gives the value in the selected cell:
String data = (String) col.getCellObservableValue(item).getValue();

假设您没有选择任何行,但是知道您想要的位置和内容。

// Item here is the table view type:
    Unpaid item = userTable.getItems().get(0);

    TableColumn col = userTable.getColumns().get(3);

    // this gives the value in the selected cell:
    String data = (String) col.getCellObservableValue(item).getValue();
    JOptionPane.showMessageDialog(null, data);
table.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
            if (newValue == null) {
                selected.setText("");
                return;
            }
                       System.out.println(newValue.getId());
        });

注意:“ getId”是您的“ get”列,“ table”是您的tabelview的名称

我解决了 我得到了字符串,例如“ [1,provedor1,calzado1,Rojo,39、600、2、1200]”,并得到了第一单元(id)的子字符串。 礼炮

TablePosition pos = (TablePosition) tableVenta.getSelectionModel().getSelectedCells().get(0);
int index = pos.getRow();
String selected = tableVenta.getItems().get(index).toString();
selected = selected.substring(1, selected.indexOf(","));
System.out.println(selected);

如果使用场景生成器,则为特定列添加一个方法到“编辑提交时”,然后在控制器类中添加逻辑。 使用event.getNewValue()获取用户输入的新值。 例如。

@FXML
private void UpdateName(TableColumn.CellEditEvent<ModelClass, String> event) {
    ModelClass mc = Table.getSelectionModel().getSelectedItem();
    mc.setName(event.getNewValue());
    System.err.println("new value "+event.getNewValue());
}

当您允许可编辑的列时使用此

您可以使用此代码,我认为它正在工作

String a=personTable.getColumns().get(0).getCellObservableValue(0).getValue().toString(); 
System.out.println("value"+a);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM