private void initGenerateXPathFromStackTrace() { ContextMenu menu = new ContextMenu(); Stage popup = new Stage(); FXMLLoader loader = new FXMLLoader(DesignerUtil.getFxml("generate-xpath-from-stack-trace.fxml")); Parent root = loader.load(); popup.close(); }); popup.setScene(new Scene(root)); popup.initStyle(StageStyle.UTILITY); popup.initModality(Modality.WINDOW_MODAL); menu.getItems().add(item); menu.show(xpathExpressionArea, t.getScreenX(), t.getScreenY());
final ContextMenu menu = new ContextMenu(); final MenuItem item = new MenuItem("Enable editing"); final Tooltip tooltip = new Tooltip(tooltipText); menu.getItems().add(item); if (event.isSecondaryButtonDown() && !menu.isShowing()) { menu.show(pane, event.getScreenX(), event.getScreenY()); } else if (menu.isShowing()) { menu.hide();
/** Gets the index of the currently focused item. */ private int getFocusIdx() { if (!autoCompletePopup.isShowing()) { return -1; } List<ObservableSet<PseudoClass>> collect = autoCompletePopup.getItems() .stream() .map(this::getStyleableNode) .filter(Objects::nonNull) .map(Node::getPseudoClassStates) .collect(Collectors.toList()); for (int i = 0; i < collect.size(); i++) { if (collect.get(i).contains(PseudoClass.getPseudoClass("focused"))) { return i; } } return -1; }
.collect(toList()); final ContextMenu menu = new ContextMenu(); for (int i = 0; i < builders.size(); i++) { final List<MenuItem> items = builders.get(i) menu.getItems().add(new SeparatorMenuItem()); items.forEach(menu.getItems()::add); if (menu.getItems().isEmpty()) { return Optional.empty(); } else {
private void showAutocompletePopup(int insertionIndex, String input) { CompletionResultSource suggestionMaker = mySuggestionProvider.get(); List<MenuItem> suggestions = suggestionMaker.getSortedMatches(input, 5) .map(result -> { Label entryLabel = new Label(); entryLabel.setGraphic(result.getTextFlow()); entryLabel.setPrefHeight(5); CustomMenuItem item = new CustomMenuItem(entryLabel, true); item.setUserData(result); item.setOnAction(e -> applySuggestion(insertionIndex, input, result.getNodeName())); return item; }) .collect(Collectors.toList()); autoCompletePopup.getItems().setAll(suggestions); myCodeArea.getCharacterBoundsOnScreen(insertionIndex, insertionIndex + input.length()) .ifPresent(bounds -> autoCompletePopup.show(myCodeArea, bounds.getMinX(), bounds.getMaxY())); Skin<?> skin = autoCompletePopup.getSkin(); if (skin != null) { Node fstItem = skin.getNode().lookup(".menu-item"); if (fstItem != null) { fstItem.requestFocus(); } } }
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.stage.Stage; public class GiveMeContext extends Application { @Override public void start(final Stage stage) throws Exception { ContextMenu contextMenu = new ContextMenu(); MenuItem register = new MenuItem("Register"); contextMenu.getItems().add(register); TextField textField = new TextField(); textField.setContextMenu(contextMenu); stage.setScene(new Scene(textField)); stage.show(); } public static void main(String[] args) throws Exception { launch(args); } }
private final Label labX = new Label("X: "); private final Label labY = new Label("Y: "); final ContextMenu cm = new ContextMenu(); MenuItem cmItem1 = createMenuItem("mNext", "Next Long Option",t->System.out.println("next")); MenuItem cmItem2 = createMenuItem("mBack", "Go Back", t->System.out.println("back")); cm.getItems().addAll(cmItem1,cmItem2); if(t.getButton()==MouseButton.SECONDARY || t.isControlDown()){ cm.show(scene.getWindow(),t.getX()+scene.getWindow().getX()+scene.getX(), t.getY()+scene.getWindow().getY()+scene.getY()); labX.setText("Right X: "+(t.getX()+cm.getWidth()-12-24)); labY.setText("Bottom Y: "+(t.getY()+cm.getHeight()-4-24)); primaryStage.setScene(scene); primaryStage.show(); primaryStage.setTitle("Scene: "+scene.getWidth()+"x"+scene.getHeight()); MenuItem m=new MenuItem(text); StackPane g=new StackPane(); g.setPrefSize(24, 24); g.setId(symbol); m.setGraphic(g); m.setOnAction(t); return m;
Button notification = new Button(); MenuItem item1 = new MenuItem("About"); item1.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { System.out.println("About"); MenuItem item2 = new MenuItem("Preferences"); item2.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { contextMenu.setMaxSize(50, 50); contextMenu.setOnShowing(new EventHandler<WindowEvent>() { public void handle(WindowEvent e) { System.out.println("showing"); contextMenu.setOnShown(new EventHandler<WindowEvent>() { public void handle(WindowEvent e) { System.out.println("shown"); System.out.println(me.getScreenX()); System.out.println(me.getScreenY()); contextMenu.show(notification,me.getScreenX(),me.getScreenY()); }else{ contextMenu.hide();
public void start( Stage stage ) throws Exception stage.setTitle( "Validation Demo" ); BorderPane borderPane = new BorderPane(); stage.xProperty().addListener( new ChangeListener<Number>() if ( passValidator.isShowing() ) adjustX( passValidator, delta ); if ( passValidator.isShowing() ) adjustY( passValidator, delta ); if ( passValidator.isShowing() ) passValidator.hide(); grid.add( scenetitle, 0, 0, 2, 1 ); grid.add( userTextField, 1, 1 ); passValidator = new ContextMenu(); passValidator.setAutoHide( false ); passValidator.getItems().clear(); passValidator.getItems().add( new MenuItem( "Please enter Password" ) ); passValidator.show( pwBox, Side.RIGHT, 10, 0 ); passValidator.hide();
stage.setTitle("Table View Sample"); stage.setWidth(450); stage.setHeight(550); ContextMenu contextMenu = new ContextMenu(); MenuItem item1 = new MenuItem("Closing Item"); item1.setOnAction(e -> System.out.println("Clicked: " + e)); CustomMenuItem item2 = new CustomMenuItem(new Label("Stay Open Item")); item2.setHideOnClick(false); item2.setOnAction(e -> System.out.println("Clicked: " + e)); CustomMenuItem item3 = new CustomMenuItem(new Label("Manually Closing Item")); item3.setHideOnClick(false); item3.setOnAction(e -> { System.out.println("Clicked: " + e); contextMenu.hide(); }); item7.setOnAction(e -> {System.out.println( e);}); contextMenu.getItems().addAll(item1, item2, item3, new SeparatorMenuItem(), item4, item5, item6, new SeparatorMenuItem(), item7);
stage.setTitle("Validation Demo"); BorderPane borderPane = new BorderPane(); grid.add(scenetitle, 0, 0, 2, 1); Label userName = new Label("User Name:"); grid.add(userName, 0, 1); grid.add(userTextField, 1, 1); final ContextMenu usernameValidator = new ContextMenu(); usernameValidator.setAutoHide(false); final ContextMenu passValidator = new ContextMenu(); passValidator.setAutoHide(false); usernameValidator.getItems().clear(); usernameValidator.getItems().add( new MenuItem("Please enter username")); usernameValidator.show(userTextField, Side.RIGHT, 10, 0); passValidator.getItems().clear(); passValidator.getItems().add( new MenuItem("Please enter Password")); passValidator.show(pwBox, Side.RIGHT, 10, 0); usernameValidator.hide(); passValidator.hide();
primaryStage.setTitle("Tabs"); Group root = new Group(); Scene scene = new Scene(root, 400, 250, Color.WHITE); tab.setText("Tab" + i); HBox hbox = new HBox(); hbox.getChildren().add(new Label("Tab" + i)); hbox.setAlignment(Pos.CENTER); tab.setContent(hbox); tabPane.getTabs().add(tab); ContextMenu contextMenu = new ContextMenu(); MenuItem close = new MenuItem(); MenuItem closeOthers = new MenuItem(); MenuItem closeAll = new MenuItem(); close.setText("Close"); closeOthers.setText("Close Others"); closeAll.setText("Close All"); contextMenu.getItems().addAll(close,closeOthers,closeAll); tab.setContextMenu(contextMenu); primaryStage.setScene(scene); primaryStage.show();
primaryStage.setTitle("Tree View Sample"); primaryStage.setScene(new Scene(root, 300, 250)); primaryStage.show(); private ContextMenu menu = new ContextMenu(); MenuItem renameItem = new MenuItem("Rename"); menu.getItems().add(renameItem); renameItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent arg0) {
final Line line3 = new Line(60, 60, 150, 90); final ContextMenu cm = new ContextMenu(); cm.getItems().add(getMenuItemForLine("line 1", line1)); cm.getItems().add(getMenuItemForLine("line 2", line2)); cm.getItems().add(getMenuItemForLine("line 3", line3)); public void handle(MouseEvent e) { if (e.getButton() == MouseButton.SECONDARY) { cm.show(rectangle, e.getScreenX(), e.getScreenY()); primaryStage.setScene(scene); primaryStage.show(); Label menuLabel = new Label(menuName); menuLabel.setStyle("-fx-padding: 5 10 5 10"); MenuItem mi = new MenuItem(); mi.setGraphic(menuLabel); line.setStroke(Color.BLUE); menuLabel.addEventHandler(MouseEvent.MOUSE_ENTERED, new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) {
); stage.setScene(new Scene(tabPane)); stage.show(); final Label content = new Label("0"); content.setAlignment(Pos.CENTER); content.setPrefSize(200, 100); content.setStyle("-fx-font-size: 30px; -fx-background-color: " + webColor + ";"); tab.setContent(content); ContextMenu contextMenu = new ContextMenu(); MenuItem menuItem = new MenuItem("Count Click"); menuItem.setOnAction(new EventHandler<ActionEvent>(){ @Override public void handle(ActionEvent e){ content.setText( contextMenu.getItems().add(menuItem);
public void start(Stage primaryStage) { StackPane root = new StackPane(); Label label = new Label("Right click here"); root.getChildren().add(label); ContextMenu contextMenu = new ContextMenu(); MenuItem menuItem = new MenuItem(); contextMenu.getItems().add(menuItem); menuItem.setGraphic(button); button.setOnAction(new EventHandler<ActionEvent>() { @Override label.setContextMenu(contextMenu); Scene scene = new Scene(root, 250, 100); primaryStage.setScene(scene); primaryStage.show();
columnPopupMenu.show(child, Side.BOTTOM, 0, 0); me.consume(); }); ContextMenu cm = new ContextMenu(); Label showAll = new Label("Show all"); showAll.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { cm.getItems().add(cmi); Label hideAll = new Label("Hide all"); hideAll.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { cm.getItems().add(cmi); cm.getItems().add(new SeparatorMenuItem()); cmi.setHideOnClick(false); cm.getItems().add(cmi);
colorssPicker.setStyle("-fx-background-color: white;"); final MenuItem otherItem = new MenuItem(null, new Label("Other item")); public void handle(MouseEvent event){ if (MouseButton.SECONDARY.equals(event.getButton())){ menu.show(primaryStage, event.getScreenX(), event.getScreenY()); primaryStage.setScene(scene); primaryStage.show();
Label label = new Label("Bright & Shiny"); label.setTextFill(Color.RED); ContextMenu contextMenu = new ContextMenu(); MenuItem closeMenuItem = new MenuItem("Close"); closeMenuItem.setOnAction(actionEvent -> System.exit(0)); contextMenu.getItems().add(closeMenuItem); contextMenu.show(rootPane, mouseEvent.getScreenX(), mouseEvent.getScreenY());
public void start(Stage primaryStage) { ContextMenu cm = new ContextMenu(new MenuItem("Item 1"), new MenuItem("Item 2")); cm.show(root,event.getScreenX(),event.getScreenY()); double yEnd=cm.getY(); cm.setY(yIni); yProperty.addListener((ob,n,n1)->cm.setY(n1.doubleValue())); primaryStage.setTitle("Moving Popup"); primaryStage.setScene(scene); primaryStage.show();