Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX-滚动窗格上的内容扭曲问题_Java_Javafx_Javafx 8 - Fatal编程技术网

JavaFX-滚动窗格上的内容扭曲问题

JavaFX-滚动窗格上的内容扭曲问题,java,javafx,javafx-8,Java,Javafx,Javafx 8,我在呈现JavaFX滚动窗格时遇到了一个问题。有时,当我滚动窗格时,包含的视图看起来“撕裂”或只是缺少某些细节。如果用户更改应用程序中的当前焦点(即单击新元素),则可以修复撕裂。请看下面的图片 我制作了一个可以复制该问题的示例程序: public class ScrollingView extends Application { public static void main(String[] args) { launch(args); } @Ove

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

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

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;
    }
}
公共类ScrollingView扩展应用程序{
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
公共无效开始(阶段primaryStage){
setTitle(“Scrollview!”);
ScrollPane root=新的ScrollPane();
root.paddingProperty().setValue(新的插入(10,10,10,10));
GridPane grid=新建GridPane();
对于(int i=0;i<20;i++)
addRow(i,createSpinner());
setContent(网格);
root.vvalueProperty().addListener((ov,oldV,newV)->root.);
原始阶段。设置场景(新场景(根,300150));
primaryStage.show();
}
私有节点[]createSpinner(){
节点[]节点=新节点[2];
节点[0]=新标签(“微调器”);
微调器微调器=新微调器();
微调器.setEditable(false);
IntegerSpinnerValueFactory喷丝头工厂=新的IntegerSpinnerValueFactory(1,10,5,1);
spinner.setValueFactory(spinnerFactory);
节点[1]=微调器;
返回节点;
}
}
我在谷歌上搜索了这个问题,但找不到解决办法。有人知道问题的原因吗?有没有办法解决


谢谢//Simon

当填充应用于
滚动窗格时,
微调器
渲染会发生扭曲。评出

root.paddingProperty().setValue( new Insets(10, 10, 10, 10));
解决问题。这可能是一个bug,您更愿意将其归档。将填充添加到其他外部布局(而不是滚动窗格)可以作为一种解决方法:

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

哇,就这么简单。我已经尝试了几天不同的事情,但我从来没有想过这是一个解决方案。谢谢你找到它!