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();
}
}