问题描述
所以,我一直在浏览Oracle文档,但是找不到有关如何访问TextArea中的Scrollbar/Scrollpane的任何提示.
Sooo, I have been gooling and looking through Oracle docs, but could not find any hint on how to gain access to the Scrollbar/Scrollpane inside my TextArea.
当TextArea中的文本超出给定范围时,出现水平和垂直滚动条...我想获取垂直滚动条的当前位置.
As the text inside my TextArea exceeds the given bound, horizontal and vertical scrollbars appear... I would like to get the current position of the vertical scrollbar.
我希望有人能提供帮助.
I hope that someone can help.
此问题涉及JavaFX,对不起,未正确指出.
This question referes to JavaFX, sorry for not properly pointing this out.
推荐答案
根据 TextArea
,TextArea
的Javadocs定义了scrollLeft
和scrollTop
属性,它们分别表示内容在水平和垂直方向上滚动了多少.
According to the Javadocs for TextArea
, TextArea
defines scrollLeft
and scrollTop
properties which represent how much the content has been scrolled horizontally and vertically, respectively.
因此,您可以根据需要绑定或观察这些属性:
So you can bind to or observe those properties, as needed:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class ScrollTrackingTextArea extends Application {
@Override
public void start(Stage primaryStage) {
TextArea textArea = new TextArea();
textArea.setWrapText(true);
Label label = new Label();
label.textProperty().bind(textArea.scrollTopProperty().asString("You are %.0f pixels from the top."));
BorderPane root = new BorderPane(textArea, label, null, null, null);
textArea.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
+ "Suspendisse ut odio eu est rutrum fermentum. Curabitur eu volutpat ante. "
+ "Pellentesque maximus laoreet dapibus. In vulputate vestibulum lectus, "
+ "non auctor purus suscipit at. Vivamus turpis magna, condimentum nec purus id, "
+ "iaculis ultrices nisl. Quisque eget mi vitae dolor placerat hendrerit et in nisi. "
+ "Nam eget velit sem. Suspendisse porta, tellus at ornare varius, "
+ "tellus massa tempor lacus, vel dictum nibh tortor sed turpis. "
+ "Curabitur commodo urna ac pharetra vulputate. Maecenas urna erat, "
+ "convallis in imperdiet ac, mollis nec risus. Nam eleifend aliquet "
+ "libero eu maximus. Nullam hendrerit, justo consectetur imperdiet porttitor, "
+ "libero tortor egestas neque, eget laoreet metus quam non erat. "
+ "Donec interdum dignissim dolor, et maximus arcu sodales quis. "
+ "Suspendisse commodo hendrerit odio a bibendum. Suspendisse sed dolor sed urna "
+ "congue porta at nec mauris. Suspendisse non risus a turpis aliquet suscipit. "
+ "Proin quis erat et nisl commodo venenatis. Nulla ipsum lorem, "
+ "blandit non posuere id, ultricies ac est. Pellentesque ut nunc laoreet, "
+ "finibus ligula porttitor, placerat massa. Sed quis nisl gravida metus venenatis "
+ "luctus ut quis sapien. Donec a nunc elit. Donec lobortis massa massa, "
+ "a scelerisque urna fringilla non. Donec molestie cursus nunc, "
+ "at convallis quam ultrices ut. Sed sed ornare nulla, eu dapibus purus. "
+ "Integer a tortor et odio rhoncus pretium. Nulla facilisi. Aliquam ut dapibus ligula. "
+ "Aenean auctor elementum neque, at congue lectus suscipit non. Suspendisse potenti. "
+ "Fusce vestibulum ex at nunc bibendum, in porttitor est lobortis. "
+ "Nam felis ex, vestibulum et dui nec, tristique semper enim. Maecenas libero erat, "
+ "tempor vitae nisi in, porttitor tincidunt nunc.Sed congue dui eu vulputate iaculis. "
+ "Quisque urna elit, aliquet molestie viverra ut, consectetur ut risus. "
+ "In ullamcorper nec nisl non posuere. Nullam ligula sem, malesuada a ornare in, "
+ "vestibulum eu purus. Cum sociis natoque penatibus et magnis dis parturient montes, "
+ "nascetur ridiculus mus. Ut molestie elit turpis, non blandit nunc consequat id. "
+ "Morbi vitae tincidunt ex. Maecenas justo odio, dapibus non iaculis a, tincidunt ut augue. "
+ "Praesent a sollicitudin neque. Curabitur in tempus nibh. Ut nec lacinia ante, ac tincidunt quam. "
+ "Phasellus porttitor tellus mi, et iaculis enim volutpat a. Nulla eget fringilla eros. "
+ "Phasellus ultricies aliquet massa. In quam leo, luctus a dolor sit amet, "
+ "facilisis consectetur enim. Vivamus ac odio et enim ultrices mattis. "
+ "Vivamus euismod nisi et posuere porttitor. Pellentesque vehicula libero id quam ultricies facilisis. "
+ "Vivamus vitae turpis vitae ligula efficitur aliquet eget eu risus. "
+ "Proin bibendum odio a lacus vulputate interdum. Nam luctus urna eu iaculis fringilla. "
+ "Quisque commodo metus risus. Quisque faucibus facilisis ultricies. "
+ "Vestibulum quis consequat nisi. Suspendisse finibus et tellus et eleifend. "
+ "Suspendisse congue malesuada urna, in eleifend arcu aliquam id. "
+ "Curabitur accumsan mi augue, ac laoreet neque viverra sit amet. Integer luctus tempus ligula non facilisis. "
+ "Maecenas eget lobortis felis.");
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这篇关于从JavaFX TextArea获取滚动条/滚动窗格的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!