2016-04-06 9 views
0

この簡単なアプリを見て:CustomMenuItemのフォーカストラバーサル。コンテンツは、マウスのホバーにゆるいフォーカス

テキストフィールドのctrl +スペースを押すと、listViewがフォーカス付きで表示され、矢印キーで選択できます。しかし、あなたがリストビュー上でマウスを動かすと、customMenuItemはホバーのハイライトを得て、リストビューは緩やかなフォーカスを返します。矢印キーはもう機能しません。

リストビューに焦点を当てる方法はありますか?

 
import java.util.ArrayList; 
import java.util.List; 
import javafx.application.Application; 
import javafx.collections.FXCollections; 
import javafx.geometry.Side; 
import javafx.scene.Scene; 
import javafx.scene.control.ContextMenu; 
import javafx.scene.control.CustomMenuItem; 
import javafx.scene.control.ListView; 
import javafx.scene.control.TextField; 
import javafx.scene.input.KeyCode; 
import javafx.scene.input.KeyEvent; 
import javafx.scene.layout.HBox; 
import javafx.stage.Stage;

public class Main extends Application { @Override public void start(Stage primaryStage) { try { HBox root = new HBox(new SuggestionTextFiedl());

Scene scene = new Scene(root, 400, 400); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } public class SuggestionTextFiedl extends TextField { ListView<String> lv = new ListView<>(); CustomMenuItem lvContainer = new CustomMenuItem(lv); ContextMenu contextMenu = new ContextMenu(lvContainer); public SuggestionTextFiedl() { super(); List<String> content = new ArrayList<>(); content.add("item1"); content.add("item2"); content.add("item3"); content.add("item1"); content.add("item2"); content.add("item3"); lv.setItems(FXCollections.observableList(content)); lv.setPrefWidth(100); lv.setPrefHeight(100); this.addEventHandler(KeyEvent.KEY_RELEASED, e -> { if (e.getCode().equals(KeyCode.SPACE) && e.isControlDown()) { System.out.println("ici"); contextMenu.show(SuggestionTextFiedl.this, Side.BOTTOM, 0, 0); lv.requestFocus(); } }); } } }

答えて

0

ことが

 contextMenu.addEventFilter(MouseEvent.MOUSE_ENTERED_TARGET, e -> { 

      e.consume(); 

     }); 
正しい方法である私の解決策はわかりません
関連する問題