您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關JavaFX如何給對象添加ContextMenu菜單,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在進行JavaFX進行桌面程序開發時,難免會遇到添加右鍵菜單的情況,今天就介紹一種通用的添加右鍵菜單的方式。
JavaFX中右鍵菜單均是通過ContextMenu來實現,首先定義GlobalMenu,繼承ContextMenu,顯示這些功能選項。代碼日下所示:
package org.crawler.ui.layout.left;import javafx.scene.control.ContextMenu;import javafx.scene.control.MenuItem;@SuppressWarnings("restriction")public class GlobalMenu extends ContextMenu { /** * 單例 */ private static GlobalMenu INSTANCE = null; /** * 私有構造函數 */ private GlobalMenu() { MenuItem settingMenuItem = new MenuItem("set"); MenuItem updateMenuItem = new MenuItem("update"); MenuItem feedbackMenuItem = new MenuItem("help"); MenuItem aboutMenuItem = new MenuItem("File"); MenuItem companyMenuItem = new MenuItem("about"); getItems().add(settingMenuItem); getItems().add(updateMenuItem); getItems().add(companyMenuItem); getItems().add(feedbackMenuItem); getItems().add(aboutMenuItem); } /** * 獲取實例 * @return GlobalMenu */ public static GlobalMenu getInstance() { if (INSTANCE == null) { INSTANCE = new GlobalMenu(); } return INSTANCE; }}
假設我們需要給一個TreeView的每個Node節點添加按鈕點擊事件,點擊按鈕之后,顯示下來菜單,我們可以如下設置。
public void addRightMenu(TreeView treeView) { treeView.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { public void handle(MouseEvent event) { Node node = event.getPickResult().getIntersectedNode(); //給node對象添加下來菜單; GlobalMenu.getInstance().show(node, javafx.geometry.Side.BOTTOM, 0, 0); String name = (String) ((TreeItem) treeView.getSelectionModel().getSelectedItem()).getValue(); System.out.println("Node click: " + name); } }); }
這個我們在點擊TreeView每個節點都會出現如下圖所示的菜單;
看完上述內容,你們對JavaFX如何給對象添加ContextMenu菜單有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。