【问题标题】:Problems with the "edit" method in TableViewTableView 中“编辑”方法的问题
【发布时间】:2017-10-21 08:22:23
【问题描述】:

我正在学习 kotlin 和 javafx。我正在尝试设置一个活动。

此 java 代码有效:

tableView.setOnKeyPressed(event -> {
       TablePosition<?, ?> pos = tableView.getFocusModel().getFocusedCell();
       if (pos != null && event.getCode().isLetterKey()) {
          tableView.edit(pos.getRow(), pos.getTableColumn());
       }
});

kontlin 中的相同代码(不工作):

class DynamicTableView : Application() {

    @Throws(Exception::class)
    override fun start(stage: Stage) {
        val tableView = TableView<ObservableList<String>>()
        tableView.setEditable(true)
        tableView.getSelectionModel().setCellSelectionEnabled(true)


        tableView.setOnKeyPressed { event ->
            val pos = tableView.focusModel.focusedCell
            if (pos != null && event.code.isLetterKey) {
                tableView.edit(pos.row, pos.tableColumn)
            }
        }

        Scene scene = new Scene(tableView);
        primaryStage.setScene(scene);
        primaryStage.setWidth(400);
        primaryStage.setHeight(400);
        primaryStage.setTitle("test");
        primaryStage.show();


    }


    companion object {

        @JvmStatic fun main(args: Array<String>) {
            launch(DynamicTableView::class.java)
        }
    }
}

Kotlin:tableView.edit(pos.row, pos.tableColumn) 方法 tableColumn 返回错误的类型。

逐字记录:类型推断失败。预期类型不匹配:推断类型为 TableColumn !但是 TableColumn!, *>!预料之中

我做错了什么?

【问题讨论】:

  • 那么第 41 行是什么?
  • tableView.edit(pos.row, pos.tableColumn) 方法 tableColumn 返回了一个无效的类型。
  • tableView.edit(pos.row, tableView.columns.get(pos.column)) 是类型安全的。
  • 谢谢。一切正常。

标签: javafx javafx-8 kotlin


【解决方案1】:

也许你需要

    tableView.setOnKeyPressed { event ->
        val pos = tableView.focusModel.focusedCell
        if (pos != null && event.code.isLetterKey) {
            tableView.edit(pos.row, tableView.columns[pos.column])
        }
    }

【讨论】:

    猜你喜欢
    • 2017-05-11
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2014-10-14
    相关资源
    最近更新 更多