Skip to Main Content

Cloud Platform

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

my secret regsitration expired

4007841May 26 2019 — edited May 28 2019

i can not access remote desktop connection in all account

This post has been answered by RotBlitz on May 27 2019
Jump to Answer

Comments

bouye-JavaNet
Answer

It's not that hard to do it:

public class Main extends Application {

    @Override

    public void start(final Stage primaryStage) {

        // Creates items for menu button.

        final ToggleGroup toogleGroup = new ToggleGroup();

        final MenuItem[] menus = IntStream.range(0, 10)

                .mapToObj(index -> {

                    final RadioMenuItem menuItem = new RadioMenuItem();

                    menuItem.setText(String.format("Radio #%d", index + 1));

                    menuItem.setToggleGroup(toogleGroup);

                    menuItem.setOnAction(event -> System.out.printf("Action -> %s%n", menuItem.getText()));

                    return menuItem;

                })

                .toArray(MenuItem[]::new);

        toogleGroup.getToggles().get(0).setSelected(true);

        // Creates menu button.

        final SplitMenuButton splitMenuButton = new SplitMenuButton();

        // Forward action to selected item when button is clicked.

        // Works ok but logs warnings when the selected toggle is briefly null when the selection changes.

//        splitMenuButton.onActionProperty().bind(Bindings.select(toogleGroup.selectedToggleProperty(), "onAction"));

        // Works ok without warnings.

        splitMenuButton.setOnAction(event -> {

            Optional.ofNullable((RadioMenuItem) toogleGroup.getSelectedToggle())

                    .ifPresent(menuItem -> {

                        Optional.ofNullable(menuItem.getOnAction())

                                .ifPresent(eventHandler -> eventHandler.handle(event));

                    });

        });

        // Bind item's text to button.

        splitMenuButton.textProperty().bind(new StringBinding() {

            {

                bind(toogleGroup.selectedToggleProperty());

            }

            @Override

            public void dispose() {

                unbind(toogleGroup.selectedToggleProperty());

                super.dispose();

            }

            @Override

            protected String computeValue() {

                final RadioMenuItem menuItem = (RadioMenuItem) toogleGroup.getSelectedToggle();

                String result = (menuItem == null) ? null : menuItem.getText();

                return result;

            }

        });

        // Bind item's graphic to button.

        splitMenuButton.graphicProperty().bind(new ObjectBinding<Node>() {

            {

                bind(toogleGroup.selectedToggleProperty());

            }

            @Override

            public void dispose() {

                unbind(toogleGroup.selectedToggleProperty());

                super.dispose();

            }

            @Override

            protected Node computeValue() {

                final RadioMenuItem menuItem = (RadioMenuItem) toogleGroup.getSelectedToggle();

                final Node result = null;

                // Find a way to duplicate graphic here.

                // final Node result = (menuItem == null) ? null : duplicateGraphic(menuItem.getGraphic());

                return result;

            }

        });

        splitMenuButton.getItems().setAll(menus);

        final StackPane root = new StackPane();

        root.getChildren().add(splitMenuButton);

        final Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Test");

        primaryStage.setScene(scene);

        primaryStage.show();

    }

    public static void main(final String[] args) {

        launch(args);

    }

}

Marked as Answer by Muzib · Sep 27 2020
Muzib

Wow! works fine. I appreciate it. Thanks a lot.

@

1 - 2

Post Details

Added on May 26 2019
1 comment
217 views