gpt4 book ai didi

JavaFX - ScrollPane 滚动内容扭曲问题

转载 作者:行者123 更新时间:2023-12-02 04:25:54 32 4
gpt4 key购买 nike

我在渲染 JavaFX 滚动 Pane 时遇到了问题。有时,当我滚动 Pane 时,所包含的 View 看起来“撕裂”或只是缺少某些细节。如果用户更改应用程序中的当前焦点(即通过单击新元素),则可以修复撕裂问题。请看下面的图片。

The scroll view, with tearing

我制作了一个可以复制该问题的示例程序:

public class ScrollingView extends Application {

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Scrollview!");
ScrollPane root = new ScrollPane();
root.paddingProperty().setValue( new Insets(10, 10, 10, 10));
GridPane grid = new GridPane();

for(int i = 0; i < 20; i++)
grid.addRow( i, createSpinner() );

root.setContent(grid);
root.vvalueProperty().addListener( (ov, oldV, newV) -> root. );

primaryStage.setScene(new Scene(root, 300, 150));
primaryStage.show();
}

private Node[] createSpinner(){
Node[] nodes = new Node[2];

nodes[0] = new Label("Spinner");

Spinner<Integer> spinner = new Spinner<>();
spinner.setEditable(false);
IntegerSpinnerValueFactory spinnerFactory = new IntegerSpinnerValueFactory(1, 10, 5, 1);
spinner.setValueFactory(spinnerFactory);
nodes[1] = spinner;

return nodes;
}
}

我用谷歌搜索了这个问题,但找不到解决方案。有谁知道导致该问题的原因以及有解决方法吗?

谢谢//西蒙

最佳答案

当将填充应用于 ScrollPane 时,Spinner 渲染会以某种方式扭曲。注释掉

root.paddingProperty().setValue( new Insets(10, 10, 10, 10));

解决了问题。这可能是一个错误,您更愿意将其归档。将填充添加到另一个外部布局而不是 ScrollPane 可以作为解决方法:

VBox vbox =new VBox(root);
vbox.setPadding( new Insets(10, 10, 10, 10));
primaryStage.setScene(new Scene(vbox, 300, 150));

关于JavaFX - ScrollPane 滚动内容扭曲问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32181804/

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