@Test public void shouldCompute3dCoordinates() { Rectangle rect = new Rectangle(100, 100); rect.setTranslateX(100); rect.setTranslateY(100); rect.setTranslateZ(50); Group root = new Group(rect, new Rectangle(0, 0)); Scene scene = new Scene(root); Stage stage = new Stage(); stage.setScene(scene); stage.show(); rect.requestFocus(); rect.setOnContextMenuRequested( event -> { Assert.assertEquals(1.0, event.getX(), 0.0001); Assert.assertEquals(101, event.getSceneX(), 0.0001); Assert.assertEquals(201, event.getScreenX(), 0.0001); Assert.assertEquals(2.0, event.getY(), 0.0001); Assert.assertEquals(102, event.getSceneY(), 0.0001); Assert.assertEquals(202, event.getScreenY(), 0.0001); Assert.assertEquals(0, event.getZ(), 0.0001); assertFalse(event.isKeyboardTrigger()); }); scene.setOnContextMenuRequested( event -> { Assert.assertEquals(101.0, event.getX(), 0.0001); Assert.assertEquals(101, event.getSceneX(), 0.0001); Assert.assertEquals(201, event.getScreenX(), 0.0001); Assert.assertEquals(102.0, event.getY(), 0.0001); Assert.assertEquals(102, event.getSceneY(), 0.0001); Assert.assertEquals(202, event.getScreenY(), 0.0001); Assert.assertEquals(50, event.getZ(), 0.0001); assertFalse(event.isKeyboardTrigger()); }); ((StubScene) scene.impl_getPeer()).getListener().menuEvent(101, 102, 201, 202, false); }