我制作了ScrollPane
,其中包含TextArea
。当TextArea
使用push()
方法获取其他文本时,需要将滚动条设置为底部。但是,使用push()
时,栏会设置为顶部。我不确定将它设置到底部需要什么方法。
以下是ScrollPane
代码:
package Games.UI.RPG;
import Games.Other.Constants;
import javafx.event.EventHandler;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.input.ScrollEvent;
/**
* Scrollable window which contains Text messages.
*/
class LogPane extends ScrollPane{
private TextArea log;
LogPane(){
initialize();
}
private void initialize(){
log = new TextArea();
log.setEditable(false);
log.prefWidth(512);
log.setText("Text Log loaded. Messages:");
setContent(log);
setFitToWidth(true);
setFitToHeight(true);
setMinHeight(Constants.height);
setMaxHeight(Constants.height);
setMinWidth(Constants.width / 3);
setMaxWidth(Constants.width / 3);
}
public void push(String message){
log.setText(log.getText() + "\n" + message);
setVvalue(getVmax());
}
}
答案 0 :(得分:1)
正如user1803551指出的那样,您使用的是ScrollPane
和TextArea
。当文本变长时,TextArea
会有一个滚动条。因此,您需要将TextArea
滚动条移至底部,因为永远不会显示ScrollPane's
滚动条。
public void push(String message)
{
log.setText(log.getText() + "\n" + message);
log.selectPositionCaret(log.getLength());
log.deselect();
}
将TextArea
滚动条移至底部here的其他方法。我个人更喜欢log.appendText();
。