import javafx.application.Application; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.ListView; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 

import java.util.ArrayList; 
import java.util.List; 


public class ListViewTest extends Application { 

    public static void main(String[] args) { 
        launch(args); 
    } 

    @Override 
    public void start(Stage primaryStage) { 
        List<String> listOfStrings = new ArrayList<>(); 
        for (int i = 0; i < 200; i++) { 
            listOfStrings.add(String.valueOf(i)); 
        } 

        ObservableList<String> observableList = FXCollections.observableArrayList(listOfStrings); 
        ListView<String> listView = new ListView<>(observableList); 

        Button button = new Button("Add elements to start"); 
        button.setOnMouseClicked(event -> { 
            for (int i = 0; i > -200; i--) { 
                observableList.add(0, String.valueOf(i)); 
            } 
        }); 

        VBox vBox = new VBox(listView, button); 

        Scene scene = new Scene(vBox, 500, 500); 

        Stage stage = new Stage(); 
        stage.setScene(scene); 
        stage.show(); 
    } 
} 
