listview javafx mouseevent

¿Cómo agregar un detector de eventos doubleclick de mouse a las celdas de un ListView en javafx?



mouseevent (2)

Tengo una lista de enlaces en un ListView. Deseo agregar un mouseEventListener a cada celda de la lista para que cada vez que un usuario haga doble clic, se abra el elemento de la lista. Puedo escribir la funcionalidad de abrir el enlace por mi cuenta, pero no puedo agregar el evento doubleclick con cada celda de la lista. Por favor ayuda...


Permítanos considerar su ListView como playList. Ahora puede implementar el oyente de mouse con la funcionalidad de doble clic en cada celda usando

playList.setOnMouseClicked(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent click) { if (click.getClickCount() == 2) { //Use ListView''s getSelected Item currentItemSelected = playList.getSelectionModel() .getSelectedItem(); //use this to do whatever you want to. Open Link etc. } } }


Tuve que resolver el mismo tipo de problema, mi ListView contiene un panel de cuadrícula y texto etiquetado, por lo que tendrá que cambiar el ''instanceof'' y el otro lado del ''o'' a lo que tiene.

(Suponiendo que su ListView se llame listView):

listView.setOnMouseClicked(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { if(event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2 && (event.getTarget() instanceof LabeledText || ((GridPane) event.getTarget()).getChildren().size() > 0)) { //your code here } } });

Es posible si el usuario hace clic cerca del borde del elemento y el borde de ListView para que no pase el ciclo if, pero parece que el usuario no lo hará en su caso.

Espero que esto ayude.