为什么';t TextArea在JavaFX中占据滚动窗格的整个区域?如何在JavaFX中向TextArea添加滚动条?

为什么';t TextArea在JavaFX中占据滚动窗格的整个区域?如何在JavaFX中向TextArea添加滚动条?,java,javafx,java-8,scrollpane,Java,Javafx,Java 8,Scrollpane,在Swing中,我将JTextArea添加到JScrollPane中,以便JTextArea具有滚动条。当我在JavaFX中执行相同操作时,行为是不同的 这个例子 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextArea; import javafx.stage.Stag

在Swing中,我将
JTextArea
添加到
JScrollPane
中,以便
JTextArea
具有滚动条。当我在
JavaFX
中执行相同操作时,行为是不同的

这个例子

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.stage.Stage;

public class SlideshowForSlipryPage2 extends Application {

    @Override
    public void start(Stage primaryStage) {


        primaryStage.setTitle("SlideshowForSlipryPage");
        primaryStage.setScene(
            new Scene(


                    new ScrollPane(
                        new TextArea() {{
                            setPromptText("[PROMPT 1]");
                        }}
                    )


                , 300, 250
            )
        );
        primaryStage.show();

    }

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

i、 文本区域比窗口宽,比窗口短

为什么以及如何修复?

尝试以下方法:

textArea.setPrefSize( Double.MAX_VALUE, Double.MAX_VALUE ); 
并将滚动窗格大小设置为与父级相同,如下所示:

scrollPane.prefWidthProperty().bind(<parentControl>.prefWidthProperty());
scrollPane.prefHeightProperty().bind(<parentConrol>.prefHeightProperty());
scrollPane.prefWidthProperty().bind(.prefWidthProperty());
scrollPane.prefHeightProperty().bind(.prefHeightProperty());
我希望它能解决你的疑问

试试这个:

textArea.setPrefSize( Double.MAX_VALUE, Double.MAX_VALUE ); 
并将滚动窗格大小设置为与父级相同,如下所示:

scrollPane.prefWidthProperty().bind(<parentControl>.prefWidthProperty());
scrollPane.prefHeightProperty().bind(<parentConrol>.prefHeightProperty());
scrollPane.prefWidthProperty().bind(.prefWidthProperty());
scrollPane.prefHeightProperty().bind(.prefHeightProperty());

我希望它能解决你的疑问

此问题与文本区域的pref宽度无关

必须将wrap属性设置为true,以便当光标到达容器边缘时,文本将换行到两行上。2种方式:

1) 使用场景生成器是最简单的方法。只需单击文本区域属性中的“包装文本”

2) 调用TextArea的以下方法:


textArea.setWrapText(true)

此问题与文本区域的pref宽度无关

必须将wrap属性设置为true,以便当光标到达容器边缘时,文本将换行到两行上。2种方式:

1) 使用场景生成器是最简单的方法。只需单击文本区域属性中的“包装文本”

2) 调用TextArea的以下方法:


textArea.setWrapText(true)

必须在滚动窗格上调用setFitToWidth(true)和setFitToHeight(true),选择滚动窗格后,可以在场景生成器布局选项卡中设置这些属性


必须在滚动窗格上调用setFitToWidth(true)和setFitToHeight(true),选择滚动窗格后,可以在场景生成器布局选项卡中设置这些属性


理想的结果到底是什么。
滚动窗格
完全占据窗口中的可用区域,不多也不少。所需的结果是什么。
滚动窗格
完全占据了窗口中的可用区域,不多不少。为什么我不应该对其他窗格执行此操作?是什么让ScrollPane如此特别?为什么我不应该对其他窗格执行此操作?什么使滚动窗格如此特别?