第1章 JavaFX入门 1
1.1 什么是JavaFX 1
1.2 JavaFX Bundle 2
1.2.1 JavaFX SDK 2
1.2.2 NetBeans IDE 3
1.2.3 JavaFX Production Suite 3
1.3 获取JavaFX 3
1.3.1 创建NetBeans项目 4
1.3.2 编辑JavaFX源代码 7
1.3.3 编译并运行 8
1.3.4 执行模型 8
第2章 JavaFX初体验 11
2.1 JavaFX简介 11
2.2 GuitarTuner 12
2.2.1 场景图比喻 12
2.2.2 分层场景图 14
2.3 JavaFX程序结构 14
2.3.1 Stage和Scene 14
2.3.2 对象字面值 16
2.4 JavaFX主要特性 16
2.4.1 类型推断 17
2.4.2 字符串 17
2.4.3 形状 17
2.4.4 序列 18
2.4.5 调用Java API 19
2.4.6 扩展CustomNode 20
2.4.7 几何图形系统 21
2.4.8 布局/组 21
2.4.9 JavaFX脚本工件 21
2.5 获得漂亮的外观 22
2.5.1 渐变 22
2.5.2 颜色 24
2.5.3 圆角矩形 26
2.5.4 DropShadow 27
2.6 执行任务 27
2.6.1 绑定 28
2.6.2 鼠标事件 29
2.6.3 动画 29
2.7 GuitarTuner的源代码 32
第3章 JavaFX语言 39
3.1 变量和类型 39
3.1.1 JavaFX类型 40
3.1.2 输出变量 42
3.1.3 伪变量 43
3.2 运算符 43
3.2.1 算术运算符 43
3.2.2 赋值运算符 44
3.2.3 一元运算符 44
3.2.4 关系运算符 44
3.2.5 逻辑运算符 45
3.2.6 instanceof运算符 45
3.3 表达式 45
3.3.1 块表达式 46
3.3.2 if表达式 46
3.3.3 for表达式 47
3.3.4 while表达式 47
3.3.5 break和continue 48
3.3.6 绑定表达式 48
3.3.7 双向绑定 49
3.4 序列 49
3.4.1 序列字面值 49
3.4.2 输出序列 50
3.4.3 使用for创建序列 51
3.4.4 访问序列中的项 52
3.4.5 在序列中插入项 52
3.4.6 从序列中删除项 53
3.4.7 比较序列 54
3.4.8 序列子集 54
3.4.9 谓词 54
3.4.10 绑定序列 55
3.5 函数 56
3.5.1 定义函数 56
3.5.2 向函数传递参数 56
3.5.3 从函数返回值 57
3.5.4 绑定函数调用 57
3.5.5 绑定函数 58
3.5.6 程序参数 59
3.5.7 函数类型 59
3.6 类和对象 61
3.6.1 类 62
3.6.2 对象字面值 62
3.6.3 使用public-init 63
3.6.4 init块 64
3.6.5 使用public-read 64
3.6.6 使用this 65
3.6.7 使用null 66
3.6.8 使用Java对象 66
3.6.9 与对象字面值绑定 67
3.6.10 覆盖绑定 69
3.7 继承 69
3.7.1 覆盖函数 69
3.7.2 使用super 70
3.7.3 postinit块 71
3.7.4 抽象基类 72
3.7.5 as运算符 73
3.7.6 混入继承 74
3.8 触发器 76
3.8.1 与变量一起使用的on replace 77
3.8.2 与序列一起使用的on replace 77
3.8.3 与isInitialized一起使用的on replace 78
3.8.4 与绑定一起使用的on replace 79
3.9 脚本文件和包 79
3.9.1 变量作用域 80
3.9.2 函数作用域 80
3.9.3 脚本文件 80
3.9.4 访问修饰符 81
3.9.5 包 82
3.10 异常处理 83
3.10.1 tyy、catch、finally 84
3.10.2 抛出异常 85
3.11 JavaFX关键字 85
第4章 图形对象 87
4.1 设置Stage 87
4.1.1 场景 88
4.1.2 Node 88
4.1.3 光标 92
4.1.4 Group 94
4.1.5 CustomNode 94
4.2 形状 95
4.2.1 矩形 98
4.2.2 圆 98
4.2.3 椭圆 99
4.2.4 弧 99
4.2.5 多边形 100
4.2.6 二次曲线 100
4.2.7 三次曲线 101
4.2.8 直线 101
4.2.9 折线 102
4.2.10 SVGPath 102
4.2.11 ShapeIntersect/ShapeSubtract 104
4.2.12 Text 106
4.3 Path 107
4.4 布局组件 110
4.4.1 HBox和VBox 110
4.4.2 Flow和Tile 112
4.4.3 Stack 114
4.5 几何体 115
4.5.1 Point2D 115
4.5.2 Bounds/Rectangle2D 115
4.5.3 边界矩形 116
第5章 用户界面组件 119
5.1 JavaFX UI控件 119
5.1.1 TextBox 119
5.1.2 UI组件 121
5.1.3 Popup窗口 123
5.2 Swing组件 124
5.2.1 SwingButton 125
5.2.2 SwingCheckBox 125
5.2.3 SwingComboBox 126
5.2.4 SwingComboBoxItem 126
5.2.5 SwingIcon 127
5.2.6 SwingLabel 127
5.2.7 SwingScrollPane 128
5.2.8 SwingList 128
5.2.9 SwingListItem 128
5.2.10 SwingRadioButton 130
5.2.11 SwingToggleButton 131
5.2.12 SwingToggleGroup 131
5.2.13 SwingSlider 131
5.2.14 SwingTextField 131
5.3 Swing示例 132
5.3.1 比萨是圆形的 132
5.3.2 馅料是圆形的 134
5.3.3 用SwingRadioButton选择比萨大小 135
5.3.4 用SwingCheckBox选择馅料 136
5.3.5 通过绑定函数和绑定实现集成 137
5.4 创建可换肤的组件 138
5.4.1 CSS 138
5.4.2 可换肤的TextButton组件 142
5.4.3 可换肤的ChoiceDialog组件 148
第6章 JavaFX应用程序剖析 157
6.1 Piano项目 157
6.2 PianoKey组件 158
6.2.1 PianoKey类 159
6.2.2 WhiteKey子类 160
6.2.3 单键应用程序 163
6.2.4 子类BlackKey 165
6.2.5 两键应用程序 167
6.3 构建键盘 169
6.4 SwingButton和动画 172
6.5 添加帮助和改进视觉效果 177
6.6 Piano项目的源代码 182
第7章 动画 193
7.1 时间轴 194
7.1.1 动画基础:移动对象 196
7.1.2 动画多个目标 198
7.1.3 分别动画多个目标 199
7.1.4 动画组 201
7.1.5 动画和绑定 204
7.2 时间轴的action属性 205
7.2.1 使用action属性数字钟显示 206
7.2.2 使用action属性进度条 207
7.3 变换 211
7.3.1 变换基础:简单运动 212
7.3.2 ScaleTransition 213
7.3.3 旋转和淡出淡入变换 214
7.3.4 复合变换 217
7.4 路径动画 219
7.4.1 创建路径 219
7.4.2 PathTransition 221
7.5 滑坡与梯子 223
7.5.1 PathBall类(PathBall.fx) 224
7.5.2 主程序(Main.fx) 227
第8章 使用图像 233
8.1 使用Image 233
8.2 使用ImageView 236
8.2.1 缩放 240
8.2.2 变换和效果展示 242
8.3 构建照片墙 246
8.4 鼠标拖放 252
8.5 动画照片传送带 256
8.5.1 照片传送带场景图 257
8.5.2 CarouselPhoto动画 257
8.5.3 CarouselPhoto自定义节点 258
8.5.4 Carousel自定义节点 261
8.5.5 CarouselImage类 264
8.5.6 主脚本 264
第9章 Web服务 267
9.1 JavaFX的pull解析器 267
9.1.1 XML解析 268
9.1.2 JSON解析 274
9.1.3 动画照片传送带 276
9.2 JavaFX HttpRequest 277
9.3 Flickr:有趣的照片 281
9.3.1 Flickr 281
9.3.2有趣的照片 282
9.4 Flickr:搜索标签 289
9.5 Flickr:获取用户照片 292
第10章 移动应用程序 295
10.1 JavaFX Mobile 295
10.1.1 移动模拟器 297
10.1.2 显示环境 299
10.1.3 变更方向 301
10.1.4 鼠标事件和键盘事件 303
10.1.5 用户输入 305
10.2 让JavaFX应用程序在移动环境中运行 306
10.2.1 检测移动环境 307
10.2.2 检测方向变更 308
10.2.3 减少图像的数量和大小 308
10.2.4 调整动画 309
10.3 仅针对移动设备的应用程序 310