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!
Can someone help me find the Oracle 10g Database? I have searched but unable to find on Oracle.
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); }}
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());
}
public void dispose() {
unbind(toogleGroup.selectedToggleProperty());
super.dispose();
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>() {
protected Node computeValue() {
final Node result = null;
// Find a way to duplicate graphic here.
// final Node result = (menuItem == null) ? null : duplicateGraphic(menuItem.getGraphic());
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);
Wow! works fine. I appreciate it. Thanks a lot.
@