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

第十四章
14.1:当引人 Java 时,GUI类使用一个称为抽象窗体工具包( AWT) 的库。AWT 开发简单
的图形用户界面尚可,但是不适合开发综合的 GUI项目。另外,AWT容易被特定于平台
的错误影响。之后 AWT 用户界面组件被一个更健壮、功能更齐全和更灵活的库所替代,即
Swing 组件。Swing 组件使用Java 代码在画布上直接绘制。Swing 组件更少依赖目标平台,且使用更少的本地 GUI资源。Swing 用于开发桌面 GUI应用。现在,它被一个全新的 GUI平台 JavaFX 所替代。
14.2:对于 Java 编程人门者
而言,JavaFX 更容易学习和使用。其次,Swing 原则上已消亡,因为它不会再得到任何增强。JavaFX 是一个新的 GUI 工具,用于在台式计算机、手持设备和 Web 上开发跨平台的富因特网应用。
14.3:可以通过扩展Application类来定义JavaFX的主类,舞台是保持窗口的情景。应用程序可能有多个阶段,启动JavaFX程序时,将自动创建初级阶段。要显示一个阶段,就得调用它的show(方法)。可以通过调用stage.setResizable(False)来阻止用户调整阶段的大小。可以用launch(args)替换Application.launch(args),因为JavaFX的主类是Application类的一个子类型。
14.4:输出结果为:
Launch application
Test constructor is invoked
Start method is invoked
14.5:利用new Scene(parent, width, height)或者new Scene(parent)去创建一个Scene对象。通过调用Stage的setScene(scene)方法在舞台中设置场景。如果要将圆置于场景中,首先要将圆放在到窗格中,然后将窗格放置到场景中。
14.6:窗格用于保存和组织节点。节点可以显示可视组件。可以使用pane.getChildren().add(节点)将节点放置于场景中。当使用new Scene(parent, width, height)或者new Scene(parent)构造场景时,可以直接将控件或者窗格放置到场景中
14.7:你可以使用它的无参构造函数new Circle()创建一个圆,并使用它的setCenterX,setCenterY方法来设置它的中心位置,并使用setRadius方法来设置它的半径,使用setStroke方法来设置笔画颜色,使用setFill方法来设置颜色。
14.8:绑定属性是与源对象绑定的属性。当源对象中的内容发生变化时,绑定属性值也会发生变化。绑定属性是属性的实例,源对象是观测值的实例。Int、long、float、double和boolean的绑定对象类型是IntegerProperty、LongProperty、DoubleProperty和BooleanProperty. Integer和 Double 不可以在一个绑定中作为源对象。
14.9:获取方法,设置方法以及属性获取方法分别是:
Public int getAge()
Public void setAge(int age)
Public IntegerProperty ageProperty()
14.10:不可以采用 new IntegerProperty(3)来创建 IntegerProperty 类型的对象,因为IntegerProperty是抽象类,无法创建实例对象。利用new SimpleIntegerProperty(4)去创建一个IntegerProperty类型的对象。如果第 8 行换成 dl.bind(d2 .multiply(2)), 输
出将是 d1 is 2.0 and d2 is 2.0 d1 is 140.4 and d2 is 70.2; 程序淸单 14
-6中,如果第 8 行换成 dl.bind(d2.add(2)), 输出将是 d1 is 2.0 and d2 is 2.0 d1 is 72.4 and d2 is 70.2。
14.11:单向绑定是将目标与源绑定。双向绑定是将两个对象绑定在一起,一个对象中的更改会影响到另一个对象。并非所有的绑定属性都可以是双向的。
14.12:node.setStyle(“-fx-border: red”);
text.setStyle(“-fx-fill: red”);
14.13:可以旋转面板、文本或者按钮。使用button.setRotate(-15);来使按钮逆时针旋转15°。
14.14:可以通过以下构造方法构建颜色实例:public Color(doub1e r, double g ( double bt double opacity) 也可以采用静态方法 color(r,g,b)、color(r,g,b,opacity)、rgb(r.g,b)以及 rgb(r,g,b,opacity)来创建一个颜色对象。下面的创建Color的代码有错的地方是:其中r、g、b 通过红色、绿色、蓝色分量值来定义一个颜色,其值从 o.o (最深色)到i.o (最浅色)。opacity 值定义了一个颜色的透明度,从 0.0 (完全透明)到 1.0 (完全不透明),它们的数值必须在0-1之间。new Color(0,0,0,1)比 new Color(l,l,l,l,)颜色更深。调用c.darker()将返回一个新的Color,颜色是不变的,不改变c中的颜色值。
14.15:通过new Color(Math.random(), Math.random(), Math.random(), 1);创建。
14.16:c.setFill(Color.BLUE); c.setStyle(“-fx-fill: blue”);
14.17:new Float(“Courier”, weight.BOLD, 20);
14.18:使用Font.getFamilies()来返回一个font字体名字的列表。
14.19:使用 new Image(filename) 或者 new Image(url)来创建一个Image对象。
14.20:使用new ImageView(image)从一个Image创建一个ImageView,或者直接从一个文件或者URL创建。
14.21:可以将一个 Image 设到多个 ImageView 上,但是却不可以将一个 ImageView 显示多次。
14.22:将一个节点加入到Pane,StackPane,FlowPane,HBox,VBox,利用pane.getChildren().add(node),将一个节点加入到BorderPane,使用setTop,setBotton,setLeft,setRight,setCenter方法 ,在这些面板中移除一个节点,利用pane.getChildren().remove(node)。
14.23:pane.setAlignment(Pos.RIGHT);语句实现节点右对齐。
14.24:在一个 FlowPane 和 CridPane中设置节点间的水平间隔和垂直间隔为 8 像素利用pane.setHGap(8),pane.setVGap(8);在 HBox 和 VBox 中设置间距为 8 像素,利用pane.setSpacing(8)。
14.25:得到 CridPane 面板中节点的列和行索引,利用pane.getRowIndex(node),pane.getColumnIndex(node); 重新设定 CridPane中节点的位置,利用 pane.setRowIndex(node, rowIndex),pane.setColunmIndex(node, colunmIndex)。
14.26:FlowPane可以有很多行和很多列,FlowPane中的节点可以水平放置,也可以垂直放置。HBox中只能有一行。VBox中只能有一列。
14.27:若要显示文本、直线、矩形、圆、椭圆、弧、多边形和折线,请创建文本、直线、矩形、圆、椭圆、弧、多边形和折线的实例,并将其添加到窗格并将窗格放置到场景中。
14.28:代码如下:
Text text = new Text(“Hello”);
StackPane pane = new StackPane();
pane.getChildren().add(text);
text.setRotate(15);
14.29:代码如下:
Line line = new Line(10, 10, 70, 30);
line.setStrokeWidth(10);
14.30:代码如下:
Rectangle rectangle = new Rectangle(10, 10, 100, 50);
rectangle.setFill(Color.RED);
14.31:代码如下:
Rectangle rectangle = new Rectangle(10, 10, 100, 200);
rectangle.setArcWidth(40);
rectangle.setArcHeight(20);
14.32:代码如下:
Ellipse ellipse = new Ellipse();
ellipse.setRadiusX(50);
ellipse.setRadiusY(100);
14.33:代码如下:
Arc arc = new Arc();
arc.setRadiusX(50);
arc.setRadiusY(50);
arc.setFill(null);
arc.setStartAngle(0);
arc.setLength(180);
arc.setType(ArcType.OPEN);
14.34:代码如下:
Arc arc = new Arc();
arc.setRadiusX(50);
arc.setRadiusY(50);
arc.setFill(Color.RED);
arc.setStartAngle(180);
arc.setLength(180);
arc.setType(ArcType.ROUND);
14.35:代码如下:
Polygon p = new Polygon();
p.getPoints().addAll(20.0, 40.0, 30.0, 50.0, 40.0, 90.0, 90.0, 10.0, 10.0, 30.0);
p.setFill(Color.GREEN);
14.36:代码如下:
Polyline p = new Polyline();
p.getPoints().addAll(20.0, 40.0, 30.0, 50.0, 40.0, 90.0, 90.0, 10.0, 10.0, 30.0));

  • 11
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java语言程序设计 基础 原书10》是由作者Y. Daniel Liang编写的一本关于Java编程基础的教材。该书内容全面详细,适合初学者学习。以下是本书中的代码内容: 该书的代码部分包含了大量的实例和案例,通过这些代码案例,读者可以学习并理解Java语言基础知识和编程技巧。这些代码包括了基本的语法使用、控制流程、数组、面向对象编程、异常处理、文件操作等各个方面的知识。 例如,一些常见的Java基础知识的代码示例包括: - 变量的声明和初始化 ```java int a = 10; String str = "Hello"; ``` - 控制流程语句 ```java if (a > 10) { System.out.println("a大于10"); } else { System.out.println("a小于等于10"); } ``` - 循环语句 ```java for (int i = 1; i <= 10; i++) { System.out.println(i); } ``` - 数组的声明和使用 ```java int[] arr = new int[5]; arr[0] = 1; arr[1] = 2; ``` - 面向对象编程的类和对象 ```java class Person { String name; int age; void sayHello() { System.out.println("Hello, my name is " + name); } } Person person = new Person(); person.name = "Alice"; person.sayHello(); ``` - 异常处理 ```java try { // 可能会抛出异常的代码 } catch (Exception e) { // 异常处理代码 } ``` - 文件操作 ```java File file = new File("file.txt"); try { Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } ``` 以上只是《Java语言程序设计 基础 原书10》中一些代码的简单示例。通过研读该书中的代码,读者可以深入理解Java语言基础知识并掌握相关编程技巧,从而具备编写Java程序的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值