2017-12-15 9 views
1

TextAreaを含むScrollPaneを作成しました。 TextAreapush()メソッドで追加のテキストを取得する場合は、スクロールバーを一番下に設定する必要があります。ただし、push()を使用すると、代わりにバーが上部に設定されます。私はそれを一番下に置くためにどのような方法が必要であるか分かりません。JavaFX 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()); 
    } 
} 
+3

なぜ追加のスクロールペインが必要ですか? 'TextArea'には既にこの振る舞いを持つスクロールバーが組み込まれています。 – user1803551

+0

'ScrollPane'のvvalueプロパティを' TextArea'の 'heightProperty'にバインドすることができます。 –

答えて

1

user1803551が指摘したように、あなたはScrollPaneTextAreaを使用している:ここでは

ScrollPaneコードです。 TextAreaは、テキストが長くなるとスクロールします。したがって、のスクロールが表示されないため、スクロールバーを下に移動する必要があります。ScrollPane'shereTextAreaスクロール移動の

public void push(String message) 
{ 
    log.setText(log.getText() + "\n" + message); 
    log.selectPositionCaret(log.getLength()); 
    log.deselect(); 
} 

他の方法。私は個人的にはlog.appendText();を好む。

+1

私はペインのタイプを変更し、修正を実装しました。どうもありがとう! – JavaHR

関連する問題