javafx tableview列调整大小问题

时间:2016-10-23 19:45:17

标签: java javafx

我正在使用Sceenbuilder来设计GUI。在TableView中我有9列。除了相同宽度之外的所有列都可以。以下是sceenbuilder的截图: enter image description here

我只想要列" serial"宽度较小。所以我将调整大小策略设置为CONSTRAINED_RESIZE_POLICY。并且仅禁用" serial"列并将其设置为固定大小(例如50)。

在sceenbuilder预览中它工作正常但是当我编译代码时,我得到一个空列,如下所示: enter image description here

只有在使用鼠标调整任何列的大小后,它才会自动获得所需的宽度。我的问题是为什么首先要使用鼠标拖动任何列?这就是我不想要的!。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

我的程序遇到了同样的问题,我这样解决了。

TableView保留为CONSTRAINED_RESIZE_POLICY。然后,在您想要某个TableColumn的{​​{1}}上,将widthmaxmin尺寸设置为相同的尺寸。这样,它就不会比你的尺寸更大,也不会小。

  

编辑1:

在玩完它之后,我确定你只需要将pref的{​​{1}}设置为你想要的大小,因为这会在桌子上分配适当的空间标题,下面我的例子仍然适用。

以下示例:

  

Environment.fxml

max width
  

主。在我的示例中,TableColumn文件位于名为<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.TableColumn?> <?import javafx.scene.control.TableView?> <?import javafx.scene.layout.BorderPane?> <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.91" xmlns:fx="http://javafx.com/fxml/1"> <center> <TableView prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER"> <columns> <TableColumn prefWidth="75.0" text="First Name" /> <TableColumn prefWidth="75.0" text="Last Name" /> <TableColumn prefWidth="75.0" text="Email Address" /> <TableColumn maxWidth="50.0" minWidth="50.0" prefWidth="50.0" text="Age" /> <TableColumn maxWidth="50.0" minWidth="50.0" prefWidth="50.0" text="Height" /> </columns> <columnResizePolicy> <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> </columnResizePolicy> </TableView> </center> </BorderPane> 的目录中。请为此调整​​代码。

fxml