java9官方第10版下载,Java 9编程参考官方大全(第10版)

目 录

第Ⅰ部分 Java语言

第1章 Java的历史和演变 3

1.1 Java的家世 3

1.1.1 现代编程语言的诞生:C语言 3

1.1.2 C :下一个阶段 4

1.1.3 Java出现的时机已经成熟 4

1.2 Java的诞生 5

1.3 Java改变Internet的方式 6

1.3.1 Java applet 6

1.3.2 安全性 6

1.3.3 可移植性 6

1.4 Java的魔力:字节码 7

目 录

第Ⅰ部分 Java语言

第1章 Java的历史和演变 3

1.1 Java的家世 3

1.1.1 现代编程语言的诞生:C语言 3

1.1.2 C :下一个阶段 4

1.1.3 Java出现的时机已经成熟 4

1.2 Java的诞生 5

1.3 Java改变Internet的方式 6

1.3.1 Java applet 6

1.3.2 安全性 6

1.3.3 可移植性 6

1.4 Java的魔力:字节码 7

1.5 不再推荐使用applet 7

1.6 servlet:服务器端的Java 8

1.7 Java的关键特性 8

1.7.1 简单性 8

1.7.2 面向对象 8

1.7.3 健壮性 8

1.7.4 多线程 9

1.7.5 体系结构中立 9

1.7.6 解释执行和高性能 9

1.7.7 分布式 9

1.7.8 动态性 9

1.8 Java的演变历程 9

1.9 Java SE 9 11

1.10 文化革新 12

第2章 Java综述 13

2.1 面向对象编程 13

2.1.1 两种范式 13

2.1.2 抽象 13

2.1.3 OOP三原则 14

2.2 第一个简单程序 16

2.2.1 输入程序 17

2.2.2 编译程序 17

2.2.3 深入分析第一个示例程序 17

2.3 第二个简短程序 19

2.4 两种控制语句 20

2.4.1 if语句 20

2.4.2 for循环 21

2.5 使用代码块 22

2.6 词汇问题 23

2.6.1 空白符 23

2.6.2 标识符 23

2.6.3 字面值 23

2.6.4 注释 23

2.6.5 分隔符 23

2.6.6 Java关键字 24

2.7 Java类库 24

第3章 数据类型、变量和数组 25

3.1 Java是强类型化的语言 25

3.2 基本类型 25

3.3 整型 25

3.3.1 byte 26

3.3.2 short 26

3.3.3 int 26

3.3.4 long 26

3.4 浮点型 27

3.4.1 float 27

3.4.2 double 27

3.5 字符型 27

3.6 布尔型 29

3.7 深入分析字面值 29

3.7.1 整型字面值 29

3.7.2 浮点型字面值 30

3.7.3 布尔型字面值 30

3.7.4 字符型字面值 31

3.7.5 字符串字面值 31

3.8 变量 31

3.8.1 变量的声明 31

3.8.2 动态初始化 32

3.8.3 变量的作用域和生存期 32

3.9 类型转换和强制类型转换 34

3.9.1 Java的自动类型转换 34

3.9.2 强制转换不兼容的类型 34

3.10 表达式中的自动类型提升 35

3.11 数组 36

3.11.1 一维数组 36

3.11.2 多维数组 38

3.11.3 另一种数组声明语法 41

3.12 关于字符串的一些说明 41

第4章 运算符 43

4.1 算术运算符 43

4.1.1 基本算术运算符 43

4.1.2 求模运算符 44

4.1.3 算术与赋值复合运算符 44

4.1.4 自增与自减运算符 45

4.2 位运算符 46

4.2.1 位逻辑运算符 47

4.2.2 左移 49

4.2.3 右移 50

4.2.4 无符号右移 51

4.2.5 位运算符与赋值的组合 52

4.3 关系运算符 52

4.4 布尔逻辑运算符 53

4.5 赋值运算符 54

4.6 “?”运算符 55

4.7 运算符的优先级 55

4.8 使用圆括号 56

第5章 控制语句 57

5.1 Java的选择语句 57

5.1.1 if语句 57

5.1.2 switch语句 59

5.2 迭代语句 62

5.2.1 while语句 63

5.2.2 do-while语句 64

5.2.3 for语句 66

5.2.4 for循环的for-each版本 68

5.2.5 嵌套的循环 72

5.3 跳转语句 72

5.3.1 使用break语句 72

5.3.2 使用continue语句 75

5.3.3 return语句 76

第6章 类 77

6.1 类的基础知识 77

6.1.1 类的一般形式 77

6.1.2 一个简单的类 78

6.2 声明对象 79

6.3 为对象引用变量赋值 80

6.4 方法 81

6.4.1 为Box类添加方法 81

6.4.2 返回值 83

6.4.3 添加带参数的方法 84

6.5 构造函数 85

6.6 this关键字 87

6.7 垃圾回收 88

6.8 堆栈类 88

第7章 方法和类的深入分析 91

7.1 重载方法 91

7.2 将对象用作参数 94

7.3 实参传递的深入分析 96

7.4 返回对象 97

7.5 递归 98

7.6 访问控制 100

7.7 理解static 102

7.8 final介绍 104

7.9 重新审视数组 104

7.10 嵌套类和内部类 105

7.11 String类介绍 107

7.12 使用命令行参数 109

7.13 varargs:可变长度实参 110

7.13.1 重载varargs方法 112

7.13.2 varargs方法与模糊性 113

第8章 继承 115

8.1 继承的基础知识 115

8.1.1 成员访问与继承 116

8.1.2 一个更实际的例子 117

8.1.3 超类变量可以引用子类对象 118

8.2 使用super关键字 119

8.2.1 使用super调用超类的构造函数 119

8.2.2 super的另一种用法 122

8.3 创建多级继承层次 123

8.4 构造函数的执行时机 125

8.5 方法重写 126

8.6 动态方法调度 128

8.6.1 重写方法的目的 129

8.6.2 应用方法重写 129

8.7 使用抽象类 130

8.8 在继承中使用final关键字 132

8.8.1 使用final关键字阻止重写 132

8.8.2 使用final关键字阻止继承 133

8.9 Object类 133

第9章 包和接口 135

9.1 包 135

9.1.1 定义包 135

9.1.2 包查找与CLASSPATH 136

9.1.3 一个简短的包示例 136

9.2 包和成员访问 137

9.3 导入包 140

9.4 接口 141

9.4.1 定义接口 141

9.4.2 实现接口 142

9.4.3 嵌套接口 144

9.4.4 应用接口 144

9.4.5 接口中的变量 147

9.4.6 接口可以扩展 148

9.5 默认接口方法 149

9.5.1 默认方法的基础知识 149

9.5.2 一个更加实用的例子 151

9.5.3 多级继承的问题 151

9.6 在接口中使用静态方法 152

9.7 私有接口方法 152

9.8 关于包和接口的最后说明 153

第10章 异常处理 155

10.1 异常处理的基础知识 155

10.2 异常类型 155

10.3 未捕获的异常 156

10.4 使用try和catch 157

10.5 多条catch子句 158

10.6 嵌套的try语句 159

10.7 throw 161

10.8 throws 162

10.9 finally 162

10.10 Java的内置异常 164

10.11 创建自己的异常子类 165

10.12 链式异常 166

10.13 其他三个异常特性 167

10.14 使用异常 168

第11章 多线程编程 169

11.1 Java线程模型 169

11.1.1 线程优先级 170

11.1.2 同步 170

11.1.3 消息传递 171

11.1.4 Thread类和Runnable接口 171

11.2 主线程 171

11.3 创建线程 172

11.3.1 实现Runnable接口 172

11.3.2 扩展Thread类 174

11.3.3 选择一种创建方式 175

11.4 创建多个线程 175

11.5 使用isAlive()和join()方法 176

11.6 线程优先级 178

11.7 同步 179

11.7.1 使用同步方法 179

11.7.2 synchronized语句 180

11.8 线程间通信 182

11.9 挂起、恢复与停止线程 187

11.10 获取线程的状态 189

11.11 使用工厂方法创建和启动线程 189

11.12 使用多线程 190

第12章 枚举、自动装箱与注解 191

12.1 枚举 191

12.1.1 枚举的基础知识 191

12.1.2 values()和valueOf()方法 193

12.1.3 Java枚举是类类型 194

12.1.4 枚举继承自Enum类 195

12.1.5 另一个枚举示例 196

12.2 类型封装器 198

12.2.1 Character封装器 198

12.2.2 Boolean封装器 198

12.2.3 数值类型封装器 198

12.3 自动装箱 199

12.3.1 自动装箱与方法 200

12.3.2 表达式中发生的自动装箱/拆箱 201

12.3.3 布尔型和字符型数值的自动装箱/

拆箱 202

12.3.4 自动装箱/拆箱有助于防止错误 202

12.3.5 一些警告 203

12.4 注解 203

12.4.1 注解的基础知识 203

12.4.2 指定保留策略 204

12.4.3 在运行时使用反射获取注解 204

12.4.4 AnnotatedElement接口 208

12.4.5 使用默认值 208

12.4.6 标记注解 209

12.4.7 单成员注解 210

12.4.8 内置注解 211

12.5 类型注解 213

12.6 重复注解 216

第13章 I/O、带资源的try语句以及其他

主题 219

13.1 I/O的基础知识 219

13.1.1 流 219

13.1.2 字节流和字符流 219

13.1.3 预定义流 221

13.2 读取控制台输入 221

13.2.1 读取字符 222

13.2.2 读取字符串 222

13.3 向控制台写输出 223

13.4 PrintWriter类 224

13.5 读/写文件 225

13.6 自动关闭文件 229

13.7 transient和volatile修饰符 231

13.8 使用instanceof运算符 232

13.9 strictfp 233

13.10 本地方法 234

13.11 使用assert 234

13.12 静态导入 236

13.13 通过this()调用重载的构造函数 238

13.14 紧凑API配置文件 239

第14章 泛型 241

14.1 什么是泛型 241

14.2 一个简单的泛型示例 241

14.2.1 泛型只使用引用类型 244

14.2.2 基于不同类型参数的泛型类型

是不同的 244

14.2.3 泛型提升类型安全性的原理 244

14.3 带两个类型参数的泛型类 246

14.4 泛型类的一般形式 247

14.5 有界类型 247

14.6 使用通配符参数 249

14.7 创建泛型方法 255

14.8 泛型接口 257

14.9 原始类型与遗留代码 259

14.10 泛型类层次 260

14.10.1 使用泛型超类 260

14.10.2 泛型子类 262

14.10.3 泛型层次中的运行时类型比较 263

14.10.4 强制转换 265

14.10.5 重写泛型类的方法 265

14.11 泛型的类型推断 266

14.12 擦除 267

14.13 模糊性错误 268

14.14 使用泛型的一些限制 269

14.14.1 不能实例化类型参数 269

14.14.2 对静态成员的一些限制 269

14.14.3 对泛型数组的一些限制 270

14.14.4 对泛型异常的限制 271

第15章 lambda表达式 273

15.1 lambda表达式简介 273

15.1.1 lambda表达式的基础知识 273

15.1.2 函数式接口 274

15.1.3 几个lambda表达式示例 275

15.2 块lambda表达式 277

15.3 泛型函数式接口 278

15.4 作为参数传递lambda表达式 280

15.5 lambda表达式与异常 282

15.6 lambda表达式和变量捕获 282

15.7 方法引用 283

15.7.1 静态方法的方法引用 283

15.7.2 实例方法的方法引用 284

15.7.3 泛型中的方法引用 287

15.8 构造函数引用 289

15.9 预定义的函数式接口 293

第16章 模块 295

16.1 模块基础知识 295

16.1.1 简单的模块示例 295

16.1.2 编译、运行第一个模块示例 298

16.1.3 requires和exports 299

16.2 java.base和平台模块 299

16.3 旧代码和未命名的模块 300

16.4 导出到特定的模块 300

16.5 使用requires transitive 301

16.6 使用服务 304

16.6.1 服务和服务提供程序的基础知识 304

16.6.2 基于服务的关键字 305

16.6.3 基于模块的服务示例 305

16.7 模块图 310

16.8 三个特殊的模块特性 310

16.8.1 open模块 310

16.8.2 opens语句 310

16.8.3 requires static 311

16.9 jlink工具和模块JAR文件介绍 311

16.9.1 链接exploded directory中的文件 311

16.9.2 链接模块化的JAR文件 311

16.9.3 JMOD文件 312

16.10 层与自动模块简述 312

16.11 小结 312

第Ⅱ部分 Java库

第17章 字符串处理 315

17.1 String类的构造函数 315

17.2 字符串的长度 317

17.3 特殊的字符串操作 317

17.3.1 字符串字面值 317

17.3.2 字符串连接 317

17.3.3 字符串和其他数据类型的连接 318

17.3.4 字符串转换和toString()方法 318

17.4 提取字符 319

17.4.1 charAt() 319

17.4.2 getChars() 319

17.4.3 getBytes() 320

17.4.4 toCharArray() 320

17.5 比较字符串 320

17.5.1 equals()和equalsIgnoreCase() 320

17.5.2 regionMatches() 321

17.5.3 startsWith()和endsWith() 321

17.5.4 equals()与== 321

17.5.5 compareTo() 322

17.6 查找字符串 323

17.7 修改字符串 324

17.7.1 substring() 324

17.7.2 concat() 325

17.7.3 replace() 325

17.7.4 trim() 325

17.8 使用valueOf()转换数据 326

17.9 改变字符串中字符的大小写 326

17.10 连接字符串 327

17.11 其他String方法 327

17.12 StringBuffer类 328

17.12.1 StringBuffer类的构造函数 328

17.12.2 length()与capacity() 329

17.12.3 ensureCapacity() 329

17.12.4 setLength() 329

17.12.5 charAt()与setCharAt() 329

17.12.6 getChars() 330

17.12.7 append() 330

17.12.8 insert() 330

17.12.9 reverse() 331

17.12.10 delete()与deleteCharAt() 331

17.12.11 replace() 332

17.12.12 substring() 332

17.12.13 其他StringBuffer方法 332

17.13 StringBuilder类 333

第18章 探究java.lang 335

18.1 基本类型封装器 335

18.1.1 Number 336

18.1.2 Double与Float 336

18.1.3 理解isInfinite()与isNaN() 338

18.1.4 Byte、Short、Integer和Long 339

18.1.5 Character 346

18.1.6 对Unicode代码点的附加支持 348

18.1.7 Boolean 349

18.2 Void类 349

18.3 Process类 349

18.4 Runtime类 350

18.4.1 内存管理 351

18.4.2 执行其他程序 352

18.5 Runtime.Version 353

18.6 ProcessBuilder类 353

18.7 System类 355

18.7.1 使用currentTimeMillis()计时程序的

执行 356

18.7.2 使用arraycopy()方法 357

18.7.3 环境属性 357

18.8 System.Logger和System.Logger

Finder 358

18.9 Object类 358

18.10 使用clone()方法和Cloneable

接口 358

18.11 Class类 360

18.12 ClassLoader类 362

18.13 Math类 362

18.13.1 三角函数 362

18.13.2 指数函数 363

18.13.3 舍入函数 363

18.13.4 其他数学方法 364

18.14 StrictMath类 365

18.15 Compiler类 365

18.16 Thread类、ThreadGroup类和

Runnable接口 366

18.16.1 Runnable接口 366

18.16.2 Thread类 366

18.16.3 ThreadGroup类 368

18.17 ThreadLocal和InheritableThread

Local类 371

18.18 Package类 371

18.19 Module类 372

18.20 ModuleLayer类 372

18.21 RuntimePermission类 372

18.22 Throwable类 373

18.23 SecurityManager类 373

18.24 StackTraceElement类 373

18.25 StackWalker类和StackWalker.

StackFrame接口 373

18.26 Enum类 373

18.27 ClassValue类 374

18.28 CharSequence接口 374

18.29 Comparable接口 374

18.30 Appendable接口 375

18.31 Iterable接口 375

18.32 Readable接口 375

18.33 AutoCloseable接口 375

18.34 Thread.UncaughtExceptionHandler

接口 376

18.35 java.lang子包 376

18.35.1 java.lang.annotation 376

18.35.2 java.lang.instrument 376

18.35.3 java.lang.invoke 376

18.35.4 java.lang.module 376

18.35.5 java.lang.management 376

18.35.6 java.lang.ref 376

18.35.7 java.lang.reflect 377

第19章 java.util第1部分:集合框架 379

19.1 集合概述 380

19.2 集合接口 380

19.2.1 Collection接口 381

19.2.2 List接口 382

19.2.3 Set接口 384

19.2.4 SortedSet接口 384

19.2.5 NavigableSet接口 385

19.2.6 Queue接口 385

19.2.7 Deque接口 386

19.3 集合类 387

19.3.1 ArrayList类 388

19.3.2 LinkedList类 390

19.3.3 HashSet类 391

19.3.4 LinkedHashSet类 392

19.3.5 TreeSet类 392

19.3.6 PriorityQueue类 393

19.3.7 ArrayDeque类 394

19.3.8 EnumSet类 395

19.4 通过迭代器访问集合 395

19.4.1 使用迭代器 396

19.4.2 使用for-each循环替代迭代器 398

19.5 Spliterator 398

19.6 在集合中存储用户定义的类 400

19.7 RandomAccess接口 401

19.8 使用映射 401

19.8.1 映射接口 402

19.8.2 映射类 406

19.9 比较器 409

19.10 集合算法 415

19.11 Arrays类 420

19.12 遗留的类和接口 423

19.12.1 Enumeration接口 424

19.12.2 Vector类 424

19.12.3 Stack类 427

19.12.4 Dictionary类 428

19.12.5 Hashtable类 429

19.12.6 Properties类 431

19.12.7 使用store()和load()方法 434

19.13 集合小结 435

第20章 java.util第2部分:更多实用

工具类 437

20.1 StringTokenizer类 437

20.2 BitSet类 438

20.3 Optional、OptionalDouble、

OptionalInt和OptionalLong 440

20.4 Date类 442

20.5 Calendar类 443

20.6 GregorianCalendar类 445

20.7 TimeZone类 446

20.8 SimpleTimeZone类 447

20.9 Locale类 448

20.10 Random类 449

20.11 Timer和TimerTask类 450

20.12 Currency类 452

20.13 Formatter类 453

20.13.1 Formatter类的构造函数 453

20.13.2 Formatter类的方法 453

20.13.3 格式化的基础知识 454

20.13.4 格式化字符串和字符 455

20.13.5 格式化数字 455

20.13.6 格式化时间和日期 456

20.13.7 %n和%%说明符 458

20.13.8 指定最小字段宽度 458

20.13.9 指定精度 459

20.13.10 使用格式标志 460

20.13.11 对齐输出 460

20.13.12 空格、“ ”、“0”以及“(”

标志 461

20.13.13 逗号标志 462

20.13.14 “#”标志 462

20.13.15 大写选项 462

20.13.16 使用参数索引 462

20.13.17 关闭Formatter对象 463

20.13.18 printf()方法 464

20.14 Scanner类 464

20.14.1 Scanner类的构造函数 464

20.14.2 扫描的基础知识 465

20.14.3 一些Scanner示例 467

20.14.4 设置定界符 470

20.14.5 其他Scanner特性 471

20.15 ResourceBundle、ListResourceBundle

和PropertyResourceBundle类 472

20.16 其他实用工具类和接口 475

20.17 java.util子包 475

20.17.1 java.util.concurrent、java.util.concurrent.

atomic和java.util.concurrent.locks 476

20.17.2 java.util.function 476

20.17.3 java.util.jar 478

20.17.4 java.util.logging 478

20.17.5 java.util.prefs 478

20.17.6 java.util.regex 478

20.17.7 java.util.spi 478

20.17.8 java.util.stream 478

20.17.9 java.util.zip 478

第21章 输入/输出:探究java.io 479

21.1 I/O类和接口 479

21.2 File类 480

21.2.1 目录 482

21.2.2 使用FilenameFilter接口 483

21.2.3 listFiles()方法 483

21.2.4 创建目录 484

21.3 AutoCloseable、Closeable和

Flushable接口 484

21.4 I/O异常 484

21.5 关闭流的两种方式 484

21.6 流类 485

21.7 字节流 486

21.7.1 InputStream类 486

21.7.2 OutputStream类 486

21.7.3 FileInputStream类 487

21.7.4 FileOutputStream类 488

21.7.5 ByteArrayInputStream类 490

21.7.6 ByteArrayOutputStream类 491

21.7.7 过滤的字节流 492

21.7.8 缓冲的字节流 492

21.7.9 SequenceInputStream类 495

21.7.10 PrintStream类 496

21.7.11 DataOutputStream和

DataInputStream类 498

21.7.12 RandomAccessFile类 499

21.8 字符流 500

21.8.1 Reader类 500

21.8.2 Writer类 501

21.8.3 FileReader类 501

21.8.4 FileWriter类 502

21.8.5 CharArrayReader类 503

21.8.6 CharArrayWriter类 504

21.8.7 BufferedReader类 505

21.8.8 BufferedWriter类 506

21.8.9 PushbackReader类 506

21.8.10 PrintWriter类 507

21.9 Console类 508

21.10 串行化 509

21.10.1 Serializable接口 509

21.10.2 Externalizable接口 509

21.10.3 ObjectOutput接口 509

21.10.4 ObjectOutputStream类 510

21.10.5 ObjectInput接口 510

21.10.6 ObjectInputStream类 511

21.10.7 串行化示例 512

21.11 流的优点 513

第22章 探究NIO 515

22.1 NIO类 515

22.2 NIO的基础知识 515

22.2.1 缓冲区 515

22.2.2 通道 517

22.2.3 字符集和选择器 518

22.3 NIO.2对NIO的增强 518

22.3.1 Path接口 518

22.3.2 Files类 519

22.3.3 Path接口 521

22.3.4 文件属性接口 521

22.3.5 FileSystem、FileSystems和

FileStore类 522

22.4 使用NIO系统 522

22.4.1 为基于通道的I/O使用NIO 523

22.4.2 为基于流的I/O使用NIO 529

22.4.3 为路径和文件系统操作使用NIO 531

第23章 联网 539

23.1 联网的基础知识 539

23.2 联网类和接口 540

23.3 InetAddress类 540

23.3.1 工厂方法 540

23.3.2 实例方法 541

23.4 Inet4Address类和Inet6Address类 541

23.5 TCP/IP客户端套接字 542

23.6 URL类 544

23.7 URLConnection类 545

23.8 HttpURLConnection类 547

23.9 URI类 549

23.10 cookie 549

23.11 TCP/IP服务器套接字 549

23.12 数据报 549

23.12.1 DatagramSocket类 550

23.12.2 DatagramPacket类 550

23.12.3 数据报示例 551

第24章 事件处理 553

24.1 两种事件处理机制 553

24.2 委托事件模型 553

24.2.1 事件 554

24.2.2 事件源 554

24.2.3 事件监听器 554

24.3 事件类 554

24.3.1 ActionEvent类 555

24.3.2 AdjustmentEvent类 556

24.3.3 ComponentEvent类 556

24.3.4 ContainerEvent类 557

24.3.5 FocusEvent类 557

24.3.6 InputEvent类 558

24.3.7 ItemEvent类 558

24.4 KeyEvent类 559

24.4.1 MouseEvent类 559

24.4.2 MouseWheelEvent类 560

24.4.3 TextEvent类 561

24.4.4 WindowEvent类 561

24.5 事件源 562

24.6 事件监听器接口 562

24.6.1 ActionListener接口 563

24.6.2 AdjustmentListener接口 563

24.6.3 ComponentListener接口 563

24.6.4 ContainerListener接口 563

24.6.5 FocusListener接口 563

24.6.6 ItemListener接口 563

24.6.7 KeyListener接口 564

24.6.8 MouseListener接口 564

24.6.9 MouseMotionListener接口 564

24.6.10 MouseWheelListener接口 564

24.6.11 TextListener接口 564

24.6.12 WindowFocusListener接口 564

24.6.13 WindowListener接口 564

24.7 使用委托事件模型 565

24.7.1 一些重要的GUI概念 565

24.7.2 处理鼠标事件 565

24.7.3 处理键盘事件 568

24.8 适配器类 571

24.9 内部类 572

第25章 AWT介绍:使用窗口、图形和

文本 577

25.1 AWT类 577

25.2 窗口基本元素 579

25.2.1 Component类 579

25.2.2 Container类 579

25.2.3 Panel类 580

25.2.4 Window类 580

25.2.5 Frame类 580

25.2.6 Canvas类 580

25.3 使用框架窗口 580

25.3.1 设置窗口的尺寸 580

25.3.2 隐藏和显示窗口 580

25.3.3 设置窗口的标题 581

25.3.4 关闭框架窗口 581

25.3.5 paint()方法 581

25.3.6 显示字符串 581

25.3.7 设置前景色和背景色 581

25.3.8 请求重画 582

25.3.9 创建基于框架的应用程序 583

25.4 使用图形 583

25.4.1 绘制直线 583

25.4.2 绘制矩形 583

25.4.3 绘制椭圆和圆 584

25.4.4 绘制弧形 584

25.4.5 绘制多边形 584

25.4.6 演示绘制方法 584

25.4.7 改变图形的大小 586

25.5 使用颜色 587

25.5.1 Color类的方法 587

25.5.2 设置当前图形的颜色 588

25.5.3 一个演示颜色的applet 588

25.6 设置绘图模式 589

25.7 使用字体 590

25.7.1 确定可用字体 591

25.7.2 创建和选择字体 592

25.7.3 获取字体信息 594

25.8 使用FontMetrics管理文本输出 595

第26章 使用AWT控件、布局管理器和

菜单 599

26.1 AWT控件的基础知识 599

26.1.1 添加和移除控件 599

26.1.2 响应控件 600

26.1.3 HeadlessException异常 600

26.2 使用标签 600

26.3 使用命令按钮 601

26.4 使用复选框 604

26.5 使用复选框组 606

26.6 使用下拉列表 607

26.7 使用列表框 609

26.8 管理滚动条 611

26.9 使用TextField 613

26.10 使用TextArea 615

26.11 理解布局管理器 617

26.11.1 FlowLayout布局管理器 617

26.11.2 BorderLayout布局管理器 618

26.11.3 使用Insets 619

26.11.4 GridLayout布局管理器 620

26.11.5 CardLayout布局管理器 621

26.11.6 GridBagLayout布局管理器 623

26.12 菜单栏和菜单 627

26.13 对话框 630

26.14 关于重写paint()方法 634

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值