Friday 15 June 2018

JavaFx: ListView: get the selected item

Below methods are used to get the selected item and selected item index from ListView object.

listView.getSelectionModel().getSelectedItem();
listView.getSelectionModel().getSelectedIndex();

Find the below working application.

ListViewApp.java
package com.sample.demos;

import javafx.scene.paint.Color;
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class ListViewApp extends Application {

 @Override
 public void start(Stage primaryStage) {
  ListView<String> listView = new ListView<>();
  ObservableList<String> items = FXCollections.observableArrayList("Cricket", "Chess", "Kabaddy", "Badminton",
    "Football", "Golf", "CoCo", "car racing");
  listView.setItems(items);

  Label label = new Label();
  label.setTextFill(Color.RED);

  listView.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends String> ov, String old_val, String new_val) -> {
     String selectedItem = listView.getSelectionModel().getSelectedItem();
     int index = listView.getSelectionModel().getSelectedIndex();
     
     label.setText("Item selected : " + selectedItem + ", Item index : " + index);
    });

  HBox hBox = new HBox(30, listView, label);

  Scene scene = new Scene(hBox, 600, 300);

  /* Set the scene to primaryStage, and call the show method */
  primaryStage.setTitle("JavaFX ListView app Example");
  primaryStage.setScene(scene);
  primaryStage.show();
 }

}

TestFX.java
package com.sample.demos;

import javafx.application.Application;

public class TestFX {
 public static void main(String args[]) {
  Application.launch(ListViewApp.class, args);
 }
}




Previous                                                 Next                                                 Home

No comments:

Post a Comment