apps/toys/Hello/src/main/java/hello/HelloButton.java

Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization

*** 1,7 **** /* ! * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 28,38 **** import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; ! import javafx.scene.input.KeyEvent; import javafx.stage.Stage; public class HelloButton extends Application { /** * @param args the command line arguments --- 28,38 ---- import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; ! import javafx.stage.Stage; public class HelloButton extends Application { /** * @param args the command line arguments
*** 49,73 **** button1.setLayoutX(25); button1.setLayoutY(40); button1.setOnAction(e -> System.out.println("Event: " + e)); ! button1.addEventHandler(KeyEvent.KEY_RELEASED, e -> System.out.println("Event: " + e)); ((Group)scene.getRoot()).getChildren().add(button1); Button button2 = new Button(); button2.setText("Click Me Too"); button2.setLayoutX(25); button2.layoutYProperty().bind(button1.heightProperty().add(button1.layoutYProperty())); ((Group)scene.getRoot()).getChildren().add(button2); ! ! Button button3 = new Button(); ! button3.setText("Click Me Three"); ! button3.setLayoutX(25); ! button3.layoutYProperty().bind(button2.heightProperty().add(button2.layoutYProperty())); ! ((Group)scene.getRoot()).getChildren().add(button3); stage.setScene(scene); stage.show(); } } --- 49,120 ---- button1.setLayoutX(25); button1.setLayoutY(40); button1.setOnAction(e -> System.out.println("Event: " + e)); ! // // add new mappings ! // // The J key should fire the button ! // button1.getInputMap().getMappings().add(new KeyMapping(J, e -> button1.fire())); ! // ! // // The SPACE key should no longer fire the button (and instead just print text to console) ! // button1.getInputMap().getMappings().add(new KeyMapping(SPACE, e -> { ! // System.out.println("This should replace the default action event!"); ! // })); ! // ! // // The degenerate case where we accept all input - a null KeyCombination matches anything ! // // and results in firing the button ! // button1.getInputMap().getMappings().add(new KeyMapping(new KeyBinding(KEY_PRESSED), e -> { ! // System.out.println("catch-all mapping caught event: " + e); ! // button1.fire(); ! // })); ! // ! // ! // // test one: lookup the J mapping and disable it ! // button1.getInputMap().lookupMapping(new KeyBinding(J)).ifPresent(mapping -> { ! // System.out.println("disabling J key mapping"); ! // mapping.setDisabled(true); ! // }); ! // ! // // test two: the degenerate case - we need to iterate through the mappings ! // // to find the null keyCombination, so that we may install an interceptor ! // // to block the tab key. This means all keys except tab will work. ! //// button1.getInputMap().lookupMapping(new KeyBinding(KEY_TYPED)).ifPresent(mapping -> { ! //// System.out.println("adding interceptor for Tab key mapping"); ! //// mapping.getInterceptors().add(event -> { ! //// if (! (event instanceof KeyEvent)) return true; ! //// return KeyCode.TAB != ((KeyEvent)event).getCode(); ! //// }); ! //// }); ! //// button1.getInputMap().getInterceptors().add(event -> { ! //// if (! (event instanceof KeyEvent)) return true; ! //// return KeyCode.X != ((KeyEvent)event).getCode(); ! //// }); ! // ! // button1.getInputMap().getInterceptors().add(new KeyMappingInterceptor(new KeyBinding(SPACE))); ! // ! // // test three: remove a mapping ! // button1.getInputMap().lookupMapping(new KeyBinding(J)).ifPresent(mapping -> { ! // System.out.println("removing J key mapping"); ! // button1.getInputMap().getMappings().remove(mapping); ! // }); ! // ! // scene.getRoot().addEventHandler(KeyEvent.ANY, e -> System.out.println("e = " + e)); ! ((Group)scene.getRoot()).getChildren().add(button1); Button button2 = new Button(); button2.setText("Click Me Too"); button2.setLayoutX(25); button2.layoutYProperty().bind(button1.heightProperty().add(button1.layoutYProperty())); ((Group)scene.getRoot()).getChildren().add(button2); ! // ! // Button button3 = new Button(); ! // button3.setText("Click Me Three"); ! // button3.setLayoutX(25); ! // button3.layoutYProperty().bind(button2.heightProperty().add(button2.layoutYProperty())); ! // ((Group)scene.getRoot()).getChildren().add(button3); stage.setScene(scene); stage.show(); } }