JavaFX ListView handle selection event

Description

JavaFX ListView handle selection event



// Demonstrate a list view. 
 
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.MultipleSelectionModel;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage; 
 
public class Main extends Application { 
   private Label response; 
 
  public static void main(String[] args) { 
 
    launch(args);   //from   ww  w.  j a v  a 2s .  c o m
  } 
  public void start(Stage myStage) { 
    myStage.setTitle("ListView Demo"); 
    FlowPane rootNode = new FlowPane(10, 10); 
    rootNode.setAlignment(Pos.CENTER); 
    Scene myScene = new Scene(rootNode, 200, 120); 
    myStage.setScene(myScene); 
    response = new Label("Select Type"); 
 
    ObservableList<String> dataList = 
      FXCollections.observableArrayList( "HTML", "CSS", "Java" );  
 
    // Create the list view. 
    ListView<String> listView = new ListView<String>(dataList); 
 
    // Set the preferred height and width. 
    listView.setPrefSize(80, 80); 
 
    // Get the list view selection model. 
    MultipleSelectionModel<String> lvSelModel = 
                                     listView.getSelectionModel(); 
 
    lvSelModel.selectedItemProperty().addListener( 
                                      new ChangeListener<String>() { 
      public void changed(ObservableValue<? extends String> changed, 
                          String oldVal, String newVal) { 
 
        // Display the selection. 
        response.setText("selected is " + newVal); 
      } 
     }); 
 
    // Add the label and list view to the scene graph. 
    rootNode.getChildren().addAll(listView, response); 
 
    // Show the stage and its scene. 
    myStage.show(); 
  } 
}



PreviousNext

Related