2016-12-12 68 views
1

我想在javaFx中禁用自動滾動TextArea,因爲當我向TextArea添加文本時滾動向下移動,我不想在TextArea中自動滾動滾動條,如果我添加應該選擇的文本滾動(例如,如果用戶正在閱讀中線,如果添加文本,則自動進入下線,因此用戶需要再次將滾動移至中線)。所以出於這個原因,我想在JavaFx中禁用TextArea中的Auto Scroll。如何在JavaFX和Java 8中禁用TextArea自動滾動?

javafx.application.Platform.runLater(new Runnable() { 
    @Override 
    public void run() { 
    logTextArea.appendText("I am adding text here to TextArea"+"\n");// Adding the text to logTextArea 
    } 
}); 

下面是裁判鏈接: - ? please check this link

Please Check this link also

+0

http://stackoverflow.com/questions/30573461/auto-scroll-down- a-textarea在這個鏈接中看到他將文本滾動條追加到自動下去時,我不想那樣。用戶在添加文本後保持滾動條應該在那裏。 – epn

回答

0

How can I hide the scroll bar in TextArea

刪除水平滾動條

textArea.setWrapText(true); 

刪除垂直滾動條

ScrollBar scrollBarv = (ScrollBar)ta.lookup(".scroll-bar:vertical"); 
scrollBarv.setDisable(true); 

CSS

.text-area .scroll-bar:vertical:disabled { 
    -fx-opacity: 0; 
} 

實施例:

public class Test2 extends Application { 

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

@Override 
public void start(Stage primaryStage) { 
    TextArea textArea = new TextArea("This is my message"); 
    textArea.setWrapText(true); 
    String css = this.getClass().getResource("/ta.css").toExternalForm(); 
    textArea.getStylesheets().add(css); 
    primaryStage.setScene(new Scene(textArea)); 
    primaryStage.show(); 
    ScrollBar scrollBar = (ScrollBar) textArea.lookup(".scroll-bar:vertical"); 
    scrollBar.setDisable(true); 

} 

} 
+0

如果我使用ScrollBar scrollBarv =(ScrollBar)ta.lookup(「。scroll-bar:vertical」); scrollBarv.setDisable(true);在控制器public void initialize(URL url,ResourceBundle rb)方法我得到空指針異常。因爲我在添加一些文本後得到了scrollPane。如果我使用的CSS沒有例外,但沒有change.My的要求是在添加文本更多的汽車scrollPane將進來,我不想滾動滾動條自動下來。哪裏有用戶在添加文本之後保持應該在那裏的滾動條。 – epn

+0

http://stackoverflow.com/a/30591681/5824797當他追加文本滾動條自動下去時,請參閱此鏈接,我不想那樣。用戶在添加文本後保持滾動條應該在那裏。 – epn

+0

您必須在展示階段後使用此代碼。我更新答案。讓我知道。 –