《Java语言程序设计》(基础篇原书第10版)第十五章复习题答案

第十五章:
15.1:事件源对象是激发事件的源。事件对象包含有关该事件的信息。源对象和事件之间的关系是,该事件是有源创建的对象。
15.2:按钮是Node的子类,所以它可以触发MouseEvent, KeyEvent, ActionEvent。
15.3:处理程序必须有正确的方法来处理事件。为了确保处理程序具有该方法,处理程序必须是处理程序接口的实例,其中定义了方法。
15.4:要注册处理程序对象,可以调用源对象的注册方法;利润,用于为按钮操作事件注册处理程序的keyon.setOnAction(处理程序)。如果要实现一个处理接口,必须实现在处理程序接口中定义的方法。
15.5:EventHandler 接口的处理器方法是public void handle(T);
15.6:对一个按钮注册一个 ActionEvent 处理器的注册方法是 button.setOnAction(handler);
15.7:一个内部类可以被除它所在的嵌套类之外的类所使用.
15.8:修饰符 public、protected、private 以及 static 可以用于内部类。
15.9:如果A类是B类的内部类,A的类文件名为B A . c l a s s ; 如 果 果 类 B 包 含 两 个 匿 名 内 部 类 , 这 两 个 类 的 . c l a s s 文 件 名 是 B A.class;如果果类 B 包含两个匿名内部类,这两个类的 .class 文件名是B A.class;B.classB+1和B$+2。
15.10:a)处理者没有登记 b)倒数第三个大括号后面缺少 );,在new EventHandler后应该增加()。
15.11lambda表达式可以看作是一个具有简洁语法的匿名类。使用lambda表达式可以使代码简洁易懂。一个lambda表达式的语法是:
(type1 para1,…,typen paren)-> expression;
(type1 para1,…,typen paren) -> {statements};
() -> expression;
() -> {statements};
15.12:功能接口就是一个方法的接口,lambda表达式只对函数的接口起作用。为了让编译器理解lambda表达式,接口必须包含精确的一个抽象方法。
15.13: Action 1!4.5 11.0
15.14:对于一个鼠标事件而言,使用e.getX()和e.getY()方法来得到鼠标点的位置
15.15:对于一个鼠标按下、释放、单击、进人、退出、移动和拖动事件,使用如下的方法进行操作:
setOnMouseClicked(handler)
setOnMousePressed(handler)
setOnMouseReleased(handler)
setOnMouseEntered(handler)
setOnMouseExited(handler)
setOnMouseDragged(handler)
setOnMouseMoved(handler)
15.16:使用方法来针对键的按下、释放以及敲击事件注册处理器:
setOnKeyPressed(handler)
setOnKeyReleased(handler)
setOnKeyTyped(handler)
15.17:使用e.getCharacter()方法来从一个键的敲击事件中获得该键的字符,针对按下键和释放键的事件,使用e.getText()方法来得到键的编码.
15.18:利用node.setFocusTraversable(true)设置一个节点获取焦点,从而它可以监听键盘事件.
15.19:如果在第 29 行和第 33 行将 pane 替换为 scene 或者 primaryStage,结果相同。
15.20:如何将一个动画的循环次数设置为无限次?如何自动倒转一个动画?如何开始、暂停以及停止一个动画?代码如下:
animation.setCycleCount(Timeline.INFINITY);
animation.setAutoReverse(true);
animation.start();
animation.pause();
animation.stop();
15.21: PathTransition,FadeTransition 和 Timeline 是 Animation 的一个子类型.
15.23: 创建一个关键帧:new KeyFrame(Duration, handler).
15.24:该程序通过没50毫秒在一个新的位置重新显示球来使球移动。
15.25: 通过对dx和dy的操作改变球的移动方向。
15.26:当鼠标按在窗格中时,程序会暂停动画,并在鼠标释放时启动动画。
15.27:如果程序没有第32行,则窗格不会聚焦以接收关键事件,按下键是,不调用键处理程序。
15.28:如果程序清单 15-17 中没有第 23 行,,动画将只重复一遍,所以你将会看到球运动停止了。

你可能感兴趣的:(java,java,语言程序设计,第十版,复习题答案)