Circle_Move_KeyEven2 |
|
Code:
package javafxtemplate1; //import javafx.animation.TranslateTransition; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.event.EventType; import javafx.scene.*; import javafx.scene.control.Label; import javafx.scene.input.*; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.stage.Stage; import javafx.util.Duration; //port ExternalClass1; /** * * @author Manas14 */ public class JavaFXTemplate1 extends Application { private static final double deltaX = 5; String str1 ="", str2=""; double orgSceneX, orgSceneY; double orgTranslateX, orgTranslateY; @Override public void start(Stage primaryStage) { // final Circle circle = createCircle(); Label label1 = new Label(str1); label1.setLayoutX(70); label1.setLayoutY(20); //circle constructor //setCenterX, setCenterY, setRadius Circle circle1 = new Circle(200, 150, 50, Color.GREEN); //final Group group = new Group(createInstructions(), circle); Group root = new Group(label1, circle1); Scene scene = new Scene(root, 350, 200, Color.CORNSILK); moveShapeOnKeyPress(scene, circle1, label1); // primaryStage.setTitle("Application"); primaryStage.setScene(scene); primaryStage.show(); } private void moveShapeOnKeyPress(Scene scene, final Circle scircle, Label label1) { scene.setOnKeyPressed((KeyEvent event) -> { label1.setText(str1 ); switch (event.getCode()) { case UP: scircle.setCenterY(scircle.getCenterY() - deltaX); str1="UP"; break; case RIGHT: scircle.setCenterX(scircle.getCenterX() + deltaX); label1.setText("RIGHT"); break; case DOWN: scircle.setCenterY(scircle.getCenterY() + deltaX); label1.setText("DOWN"); break; case LEFT: scircle.setCenterX(scircle.getCenterX() - deltaX); label1.setText("LEFT"); break; // default: deltaX = 0 ; can't use as it is final } }); } public static void main(String[] args) { launch(args); } } |
Runtime displays:
a) Default b) Up Key c) Left Key |
d) down key |