在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);
}
}
给出
即。文本区域比窗口宽,比它短。
为什么以及如何解决?
答案 0 :(得分:2)
此问题与文本区域的pref宽度无关。
必须将wrap属性设置为true,以便在光标到达容器边缘时文本将换行到两行。 2种方式:
1)使用场景构建器是最简单的方法。简单点击"自动换行"在TextArea的属性中。
2)调用TextArea的以下方法:
textArea.setWrapText(true);
答案 1 :(得分:1)
试试这个:
textArea.setPrefSize( Double.MAX_VALUE, Double.MAX_VALUE );
并设置与父母相同的滚动窗格大小:
scrollPane.prefWidthProperty().bind(<parentControl>.prefWidthProperty());
scrollPane.prefHeightProperty().bind(<parentConrol>.prefHeightProperty());
我希望它可以解决您的疑问!!!
答案 2 :(得分:1)
您必须在ScrollPane上调用setFitToWidth(true)和setFitToHeight(true),您可以在选择ScrollPane后在场景构建器“布局”选项卡中设置这些属性。