0

の最初の (またはその他の) アイテムでシングルおよびダブル マウス クリック イベントを発生させる方法はjavafx.scene.control.ListView?

私はこのようなイベントを受け取りたい:

getListView().setOnMouseClicked(mouseEvent -> {
    switch (mouseEvent.getClickCount()) {
        case 1:
            break;
        case 2:
            break;
    }
});
4

1 に答える 1

1

誤解があるようです。イベントは のアイテムではなく、アイテムListViewListCell表示する で発生します。ListCells は動的に構築され、再利用される可能性があるため、特定の項目に対応するイベント ターゲットが存在しない場合があります。

ただし、正しいノードを手に入れた場合は、次を使用してイベントを発生させることができますEvent.fireEvent

Node target = ...
MouseEvent mouseEvent = new MouseEvent(MouseEvent.MOUSE_CLICKED, ...);
Event.fireEvent(target, mouseEvent);

ListCellを使用して s を見つけることもできますlookupAll

Set<Node> listCells = listView.lookupAll(".list-cell");

と を使用ListCell.getItemListCell.getIndexて、正しいものを決定します。

しかし、イベント リスナーがListView検出に追加されるため、正しいものListCellは必要ない場合があります。

于 2016-01-06T15:12:41.363 に答える