在我的javafx应用程序中,我有一个表格视图,其中显示了数据,用户也可以通过双击空白区域来添加数据。 但我的问题是用户添加一些数据并显示表视图的滚动条,它只显示包含数据的行,并且没有更多的空白区域供用户添加更多数据, 我的问题是:有任何方法可以操纵表格视图的滚动条,这样我就可以有一个空白区域
答案 0 :(得分:0)
布局由布局窗格管理。这些布局管理器实现了布局算法,该算法遵循节点和节点容器上的约束。因此,要使UI的区域始终可见,您必须选择适当的布局窗格以将组件放置在其中并设置适当的约束以确保组件始终可见。具体方法取决于封闭的布局窗格和要添加的组件。
下面是一个示例,它会在下方创建一个始终可见的区域,复制您在问题评论中链接的图像。您可以为FXML实现一个控制器,它提供了拖动事件处理程序的实现,这样当有人将某些内容拖入“添加数据的空白区域”时,相关数据就会被添加到表中。
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="277.0" prefWidth="215.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TableView prefHeight="200.0" VBox.vgrow="ALWAYS">
<columns>
<TableColumn prefWidth="96.0" text="C1" />
<TableColumn prefWidth="93.0" text="C2" />
</columns>
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy>
</TableView>
<Label alignment="CENTER" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" onDragDetected="#dragDetected" onDragDone="#dragDone" onDragDropped="#dragDropped" onDragEntered="#dragEntered" onDragExited="#dragExited" onDragOver="#dragOver" prefHeight="70.0" text="Empty area to add data" textAlignment="CENTER" wrapText="true" VBox.vgrow="SOMETIMES" />
</children>
</VBox>
另见: