gpt4 book ai didi

javafx - 在 FXML 中为 TableView 设置 SelectionModel

转载 作者:行者123 更新时间:2023-12-01 02:21:44 26 4
gpt4 key购买 nike

我想从 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com