相关的FXML:
<ScrollPane fx:id="scrollpane_var" hbarPolicy="NEVER" prefHeight="200.0" prefWidth="200.0" GridPane.columnSpan="3" GridPane.rowIndex="2" GridPane.rowSpan="5">
<content>
<TableView fx:id="tableview_var" prefHeight="169.0" prefWidth="292.0">
<columns>
<TableColumn prefWidth="69.0" text="Quantité" />
<TableColumn prefWidth="161.0" text="Nom" />
<TableColumn prefWidth="56.0" text="Prix" />
</columns>
</TableView>
</content>
</ScrollPane>```
控制器类代码:
public class Lancer {
@FXML // fx:id="scrollpane_var
private ScrollPane scrollpane_var; // Value injected by FXMLLoader
@FXML // fx:id="tableview_var"
private TableView<String> tableview_var; // Value injected by FXMLLoaderte void initialize()
public void initialize() {
tableview_var.prefWidthProperty().bind(scrollpane_var.prefWidthProperty());
}```
视觉表现 :
如标题所示,我试图将TableView的宽度绑定到它的Parent容器,并且文档有点混乱,因为我对GUI Applications非常陌生。
这行代码是我最熟练的代码,我不知道为什么它不起作用:
public void initialize() {
tableview_var.prefWidthProperty().bind(scrollpane_var.prefWidthProperty());
}```
问题来源:Stack Overflow
A TableView管理自己的滚动,因此您根本不应将其放在a内ScrollPane。只需完全从布局中省略滚动窗格。
通常,如果您希望滚动窗格的内容适合滚动窗格的可用宽度,则应使用fitToWidth属性,而不是尝试使用绑定。通常,像这样绑定首选项宽度不是一个好主意。如果您使用的布局或容器没有提供所需的功能,而几乎总是提供该功能,则您应该继承Pane并覆盖layoutChildren()其他方法。在这里,TableView已经提供了滚动功能,在更一般的情况下,ScrollPane允许您指定内容应适合滚动窗格的宽度。
<ScrollPane ... fitToWidth="true>
<!-- ... -->
</ScrollPane>
但同样,这里的滚动窗格是多余的。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。