当前位置: 首页 > 知识库问答 >
问题:

用FXML为TableView设置SelectionModel

夏侯兴怀
2023-03-14

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

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

<TableView selectionModel="MULTIPLE">

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

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

非常感谢任何帮助!

共有1个答案

孟文栋
2023-03-14

如果它在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.control.SelectionMode.multiplevalueof但没有找到。

...
<?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> 
 类似资料:
  • 问题内容: 如何从FXML设置TableView的调整大小策略?我这样累了,但是不起作用: 问题答案: 要使用fxml为tableview设置columnresize策略,必须使用标记。这将在javafx 2.2及更高版本上工作。 参考: 使用fxml定义TableView columnResizePolicy属性

  • 创建描述表的FXML文件 以下称为此fxml 父p=FXMLLoader.Load(getClass().GetResource(“UnitTypeTable.ffXML”));

  • 如何在FXML中定义表,然后使用JavaFX代码在运行时动态填充表?

  • 问题内容: 我有1个类文件Nepokretnost.java,其中的构造函数如下所示: 此外,对于每个类字段,我都有带有列的TableView。我的问题是双字段“ povrsina”。我想从TextField设置它。 我将名为txtPovrsina的TextField的内容发送给double变量: 然后将所有字段放在TableView中: 一切运行良好,但是我想要一些应用程序的行为,但我不知道如何

  • 或者类似的内容,但是我的节点是在FXML文件中定义的。如何从FXML文件外部访问节点以便定义布局,或者如何在FXML文件中定义布局。(我不使用也不打算使用场景构建器)。