public void setLyrics() throws IOException { lyrStage = new Stage(); lyrStage.setTitle("Lyrics setting"); lyrStage.setHeight(420); AnchorPane root = new AnchorPane(); root.setStyle( "-fx-border-color: black, transparent; -fx-border-width: 1px, 5px; -fx-border-insets: 0px, 1px"); root.setOnMouseDragged( new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent me) { lyrStage.setX(me.getScreenX()); lyrStage.setY(me.getScreenY()); } }); lyrStage.initStyle(StageStyle.UNDECORATED); Scene scene = new Scene(root); final TextArea lyricArea = new TextArea(); lyrStage.setScene(scene); lyricArea.setPrefHeight(100); lyricArea.setPrefWidth(190); lyricArea.setMinHeight(100); lyricArea.setLayoutY(315); lyricArea.setLayoutX(7); lyricArea.setMaxWidth(TextField.USE_PREF_SIZE); final Label label = new Label(); /* final ScrollPane sp = new ScrollPane(); sp.setPrefSize(200, 200); sp.setHbarPolicy(ScrollBarPolicy.AS_NEEDED); sp.setVbarPolicy(ScrollBarPolicy.AS_NEEDED); sp.setPannable(true); sp.setContent(label); sp.vvalueProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> ov, Number old_val, Number new_val) { label.setLayoutY(-new_val.doubleValue()); label.setLayoutX(-new_val.doubleValue()); } }); */ label .textProperty() .bind( new StringBinding() { { bind(lyricArea.textProperty()); } @Override protected String computeValue() { String text = lyricArea.getText(); return "Lyric preview: \n\n " + songName + "\n\n" + text; } }); final VBox vBox = new VBox(); vBox.setPrefHeight(800); // //////////////////////////////////////// vBox.setPrefWidth(240); vBox.setPadding(new Insets(18)); vBox.getChildren().addAll(label); final VBox vBox2 = new VBox(); vBox2.setPrefHeight(340); vBox2.setPrefWidth(240); vBox2.setAlignment(Pos.BOTTOM_RIGHT); Button btnText = new Button(); btnText.setText("Ok"); btnText.setStyle("-fx-base: white;"); btnText.setOnAction( new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { String txt = lyricArea.getText(); textSet(txt); lyrStage.close(); } }); vBox2.getChildren().add(btnText); ScrollBar sc = new ScrollBar(); sc.setMin(0); sc.setMax(500); sc.setValue(30); sc.setPrefWidth(3); sc.setPrefHeight(160); sc.setVisibleAmount(10); sc.setOrientation(Orientation.VERTICAL); sc.valueProperty() .addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> ov, Number old_val, Number new_val) { label.setLayoutY(-new_val.doubleValue()); } }); root.getChildren().addAll(vBox, lyricArea, vBox2, sc); lyrStage.setX(50); lyrStage.setY(50); lyrStage.show(); }