首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaFX: textArea.setScrollTop(Double.MAX_VALUE)并不总是有效

JavaFX: textArea.setScrollTop(Double.MAX_VALUE)并不总是有效
EN

Stack Overflow用户
提问于 2016-08-05 21:46:42
回答 1查看 1.1K关注 0票数 7

这是我的代码片段。

代码语言:javascript
复制
textArea.setText(someNewText)
textArea.positionCaret(textArea.getText().length());
textArea.setEditable(true);
textArea.setScrollTop(Double.MAX_VALUE);

我使用textArea.setScrollTop(Double.MAX_VALUE)将文本区域滚动到底部(我在互联网上找到的解决方案)。它是有效的,但并不总是有效。我已经注意到,只有当垂直滚动条在调用此代码之前不可见,而在代码执行后可见时,它才能工作。当垂直滚动条在调用此代码之前可见时,滚动到底部总是有效的。如何修复它?也许我应该让垂直滚动条始终可见?如果是,那么如何-我没有找到解决方案。

EDIT:这是示例代码:

代码语言:javascript
复制
public class JavaFxApp1 extends Application{

    private TextArea textArea;

    @Override
    public void start(Stage stage) throws Exception {
        Button button=new Button("Press here");
        textArea=new TextArea();
        VBox vbox = new VBox(button,textArea);
        button.setOnAction((event)->{
            textArea.appendText("###This is a very long string:some text some text some text some text some"
                    + " text some text some text some text some text some text"
                    + " text some text some text some text some text some text"
                    + " text some text some text some text some text some text .\n");
            textArea.selectEnd();
            textArea.deselect();
            textArea.setScrollTop(Double.MAX_VALUE);
        });
        textArea.setEditable(true);
        textArea.setWrapText(true);
        textArea.setStyle("-fx-font-size:14px;-fx-focus-color: transparent;-fx-font-family: monospace;");
        Scene scene=new Scene(vbox);
        stage.setTitle("SomeTitle");
        stage.setScene(scene);
        stage.setMinHeight(400);
        stage.setMinWidth(800);
        stage.show();
    }
}

这是我按了4次按钮后的结果:

如你所见,它没有滚动到底部。在我再次按下按钮(第五次)后,我得到了以下结果:

现在,正如你所看到的,它被滚动到了底部。我试着补充说:

代码语言:javascript
复制
ScrollPane scrollPane = (ScrollPane) textArea.lookup(".scroll-pane");  
scrollPane.setVbarPolicy(ScrollBarPolicy.ALWAYS);

要使滚动条始终可见-它是可见的,但在4次之后无论如何都不会滚动到底部。

如何修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-07 04:00:41

这是一个bug。请参阅以下链接https://bugs.openjdk.java.net/browse/JDK-8189732

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38790863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档