gpt4 book ai didi

java - 如何修复 javafx 中 Gridpane 中的一行

转载 作者:太空宇宙 更新时间:2023-11-04 11:29:11 25 4
gpt4 key购买 nike

我有一个在 javafx 中填充的数据 GridPane。最上面一行是标题单元格,我需要将它们垂直固定,以便它们始终显示在屏幕上(例如 Excel 中的卡住 Pane )。

我尝试过使用两个滚动 Pane 。到目前为止这不起作用,因为我试图隐藏顶部滚动 Pane 的滚动条。我需要能够使顶部滚动 Pane 与底部滚动 Pane 的 x 轴同步滚动,我只想隐藏滚动条。

我考虑过使用堆栈 Pane 而不是上述方法,但我不确定如何隐藏水平滚动条。

如有任何建议,我们将不胜感激。

这是我的 FXML

    <BorderPane xmlns:fx="http://javafx.com/fxml" fx:id="results_pane" >
<top>
<ScrollPane fx:id="results_scroll_pane_titles" >
<GridPane fx:id="results_grid_view_titles">

</GridPane>
</ScrollPane>
</top>
<left><VBox fx:id="paint_tools_results"></VBox></left>
<center>

<ScrollPane fx:id="results_scroll_pane">
<GridPane fx:id="results_grid_view">

</GridPane>
</ScrollPane>
</center>
<right>
<VBox fx:id="queue_button_tools" alignment="BOTTOM_LEFT" >

<ScrollPane hbarPolicy="NEVER" fx:id="queue_scrollpane" >
<VBox fx:id="selected_page_queue">
<padding><Insets top="0" right="10" bottom="0" left="0"/></padding>
</VBox>
</ScrollPane>
<HBox>
<Button prefWidth="105" fx:id="view_all">View</Button>
<Button prefWidth="105" fx:id="remove_all" >Remove All</Button>
</HBox>
</VBox>
</right>
</BorderPane>

这也是我尝试用来隐藏滚动条的代码:

Set<Node> nodes = results_scroll_pane_titles.lookupAll(".scroll-bar");
nodes.stream().filter((node) -> (node instanceof ScrollBar)).map((node) -> (ScrollBar) node).forEach((sb) -> {
if (sb.getOrientation() == Orientation.HORIZONTAL) {
title_scrollbar = sb;
}
sb.setVisible(false);

});

它找到了滚动条并隐藏了实际的 slider ,但背景栏仍然可见。

最佳答案

我已经想出了一个解决办法。虽然有人指出我可以使用 @VGR 的表格 View ,但我决定采取不同的方法,因为我在使用网格 Pane 方面走得更远。

我的方法是将滚动 Pane 的字体大小设置为 1px。

results_scroll_pane_titles.setStyle("-fx-font-size:1px");

这并没有完全删除滚动条,但它非常适合我的需求。当然,我随后需要覆盖子元素的字体大小。

完成此操作后,我就能够绑定(bind)滚动条以沿另一个滚动条的 h 轴滚动。

hPosition.bind(results_scroll_pane.hvalueProperty());
hPosition.addListener(new ChangeListener() {
@Override
public void changed(ObservableValue arg0, Object arg1, Object arg2) {
results_scroll_pane_titles.setHvalue((double) arg2);

}
});

我认为就我的目的而言,这比 TableView 效果更好,因为 TableView 有一些我不需要搞乱的开销。

关于java - 如何修复 javafx 中 Gridpane 中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988547/

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