ListViewにリンクのリストがあります。リストの各セルにmouseEventListenerを追加して、ユーザーがリストアイテムのリンクをダブルクリックするたびに開くようにします。リンクを開く機能を自分で作成することはできますが、リスト内のすべてのセルにダブルクリックイベントを追加することはできません。助けてください...
あなたのListView
をプレイリストと考えてみましょう。これで、を使用して各セルにダブルクリック機能を備えたマウスリスナーを実装できます。
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.
}
}
}
同じ種類の問題を解決する必要がありました。ListViewにはグリッドペインとラベル付きテキストが含まれているため、「instanceof」と「または」の反対側を現在の状態に変更する必要があります。
(ListViewの名前が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
}
}
});
ユーザーがアイテムの端とListViewの境界の近くをクリックすると、ifループを通過しない可能性がありますが、この場合、ユーザーはそれを行わないようです。
お役に立てれば。