2016-12-08 9 views
0

私はJavaFXを通して自分のやり方を試していますが、まだまだ愚かなことも多くあります。その日のJavaFxコントローラからコンテキストメニューを追加します

私の問題は、以下の通りである。

Iシーンビルダーとコントローラ、Iは、コンテキストメニューを開き、右クリックしてオプションを追加するFlowPaneに、作成しています。

シーンビルダを使用して、OnContextMenuRequested関数を追加し、コントローラで定義しました。

確認するには、機能には印刷の推奨とダイアログボックスが追加されています。

しかし、コンテキストメニューは動作しません。..

誰もが私が行方不明です何に役立つと私に言うことができます?

事前のおかげで...

public void contextMenu(ContextMenuEvent contextMenuEvent) { 


    // working fine .. 

    Alert alert = new Alert(Alert.AlertType.INFORMATION); 
    alert.setTitle("Information"); 
    alert.setHeaderText("Look"); 
    alert.setContentText("Message"); 
    alert.showAndWait(); 



    // working fine 

    System.out.println("Hello"); 


    // Context Menu ......... not working 

    ContextMenu contextMenu = new ContextMenu(); 
    MenuItem quit = new MenuItem("quit"); 
    MenuItem hello = new MenuItem("hello"); 
    contextMenu.getItems().addAll(quit, hello); 
    contextMenu.setX(10.0); 
    contextMenu.setY(10.0); 
    contextMenu.show(); 

    ????.setContextMenu(????) 

    } 
+0

'は何ですかcontextMenu.show() '? [ContextMenu](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ContextMenu.html)には、このようなパラメータのないpublic show()メソッドはありません。 [パラメータ化されたメソッドを使用してメニューを表示する](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ContextMenu.html#show-javafx.scene.Node- javafx.geometry.Side-double-double-)。問題が引き続き発生する場合は、[mcve](http://stackoverflow.com/help/mcve)を提供し、コンパイルし、実行し、問題を複製し、最小限に抑えてください。 – jewelsea

+0

真...それは試してみる価値はあると思ったが、うまくいかなかった....他の方法を知っていますか? – rainer

+0

私はリンクされたドキュメントを読む、それはContextMenu表示のサンプルコードを提供します。 – jewelsea

答えて

3

あなたがコントロールしている場合を除き、あなたはContextMenuで定義された方法のいずれかを使用してContextMenu「手動」と表示する必要があります。

// contextMenu.setX(10.0); 
// contextMenu.setY(10.0); 

contextMenu.show((Node) contextMenuEvent.getSource(), contextMenuEvent.getScreenX(), contextMenuEvent.getScreenY()); 
+0

は魅力的な作品です。 – rainer

関連する問題