【推荐语】
《Java 9编程参考官方大全(第10版)》针对Java SE 9做了全面更新,介绍了如何开发、编译、调试和运行Java程序。畅销书作家Herbert Schildt在本书中详尽地讲解了Java语言,包括Java的语法、关键字和基本编程原则,以及Java API库的主要内容,如I/O、集合框架、流库或并发实用程序。另外,《Java 9编程参考官方大全(第10版)》还介绍了Swing、JavaFX、Java Bean和servlet,并通过大量真实案例展示了Java语言的应用。本书对Java SE 9的新模块特性也进行了深入讲解,*后还介绍了Java的新交互式编程工具——JShell。







 
【内容】
主要内容 ● 数据类型、变量、数组和运算符 ● 控制语句 ● 类、对象和方法 ● 方法重载和重写 ● 继承 ● 接口和包 ● 异常处理 ● 多线程编程 ● 枚举、自动装箱和注解 ● I/O类 ● 泛型 ● lambda表达式 ● 模块 ● 字符串处理 ● 集合框架 ● 联网 ● 事件处理 ● AWT ● Swing和JavaFX ● 并发API ● 流API ● 正则表达式 ● Java Bean ● servlet
【目录】
第Ⅰ部分  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  
 
 
显示全部信息
返回顶部