javafx - 在 FXML 中为 TableView 设置 SelectionModel

标签 javafx tableview javafx-8 selectionmodel

我想从 FXML 中设置 TableView 的 SelectionModel,但我找不到如何做到这一点。我已经尝试了以下方法:

1.将其设置为TableView的一个属性即可:

<TableView selectionModel="MULTIPLE">

2.设置与ListView相同的属性(见:https://community.oracle.com/thread/2315611?start=0&tstart=0):

<TableView multiSelect="true">

3.以不同的方式设置属性:

<TableView>
    <selectionModel>
        <TableView fx:constant="MULTIPLE" />
    </selectionModel>
</TableView>

4.另一个版本:

<TableView>
    <selectionModel>
        <SelectionModel fx:constant="MULTIPLE" />
    </selectionModel>
</TableView>

5.选择模型(不同):

<TableView>
    <selectionModel>
        <SelectionModel selectionModel="MULTIPLE" />
    </selectionModel>
</TableView>

这些都不行。

非常感谢任何帮助!

最佳答案

如果在 FXML 上可行的话,应该是这样:

<TableView fx:id="table" prefHeight="200.0" prefWidth="200.0" >
    <columns>
      <TableColumn prefWidth="75.0" text="C1" />
    </columns>
    <selectionModel>
        <SelectionMode fx:constant="MULTIPLE"/>
    </selectionModel>
</TableView>

不幸的是,当你运行它时,你会得到一个异常:

java.lang.IllegalArgumentException: Unable to coerce SINGLE to class javafx.scene.control.TableView$TableViewSelectionModel.
at com.sun.javafx.fxml.BeanAdapter.coerce(BeanAdapter.java:495)

发生这种情况是因为 bean 适配器试图在类 javafx.scene.control.TableView$TableViewSelectionModel 中找到 javafx.scene 的 valueOf。 control.SelectionMode.MULTIPLE,但没有找到。

here 的 JIRA 票证尚未解决.

根据该报告,我发现的唯一可行的解​​决方案是使用脚本功能:

...
<?language javascript?>

    <TableView fx:id="table" prefHeight="200.0" prefWidth="200.0" >
        <columns >
          <TableColumn fx:id="col" prefWidth="75.0" text="C1" />
        </columns>
    </TableView>
    <fx:script>          
          table.getSelectionModel().setSelectionMode(javafx.scene.control.SelectionMode.MULTIPLE);
    </fx:script> 

这和用代码做是一样的……

关于javafx - 在 FXML 中为 TableView 设置 SelectionModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27667965/

相关文章:

ios - [NSNull 长度] : unrecognized selector sent to instance on keyboard keystroke?

java - 限制 JavaFX TextField 的字符数导致撤消时出现 IndexOutOfBounds

listview - 如何以编程方式用户根据 JavaFX 中的字符串值定义 ListView 的颜色

JavaFX 8 错误的 SplitPane 的分隔符位置

java - BorderPane 重叠内容

JavaFx 查找具有特定 id 的源父节点?

Swift: tableView.reloadData() 表中没有数据

JavaFX 8 媒体播放器进度 slider

button - Javafx : Activate a tooltip with a button

ios - 使用自定义单元格将搜索栏实现到 uitableview