步骤如下,都是我自己整理的:一维数组:1.声明一维数组 在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用。声明数组是声明一个标识符能引用数组,需要指定数组元素的类型。声明一维数组有两种格式: 数组元素类型 数组名[]; 或者 数组元素类型[] 数组名; Student stu[];//与Student[] stu; 等价2.创建一维数组 创建一维数组就是为数组分配存储空间,需指定数组长度。数组创建后,数组名就标识用于存储数组元素的存储空间。创建一维数组的方法有3种: (1) 先声明后创建 创建数组代码的一般形式为:数组名字 = new 数组元素类型[元素个数]; 例如,代码: int intArray []; intArray = new int[5]; (2) 声明时创建 把声明数组和创建数组的代码结合在一起。例如: int intArray[] = new int[5]; (3) 直接赋值创建 在声明数组时,直接给出数组的初值。例如: int [] intArray = {1,2,3,4,5}; 直接赋值创建数组的方法也称为数组初始化。在数组初始化的代码中,花括号{}内初值间的分隔符是逗号”,”。系统根据数组初始化时提供的初值个数确定数组的元素个数,然后为数组分配空间,并为数组各元素依次赋初值。上述代码相当于: int intArray[] = new int[5]; intArray[0]=1; intArray[1]=2; intArray[2]=3;intArray[3]=4; intArray[4]=5; 前两种方法创建数组时,系统会给数组元素提供默认初始值:数值型数组元素的默认值是0;char类型数组元素的默认值是全0代码字符;布尔类型数组元素的默认值是false。在Java中,所有数组都有一个成员length,程序可以访问它,获得数组的元素个数,但不能改变它。例如,按照前面数组intArray的定义,intArray.length的值是5。 3.引用一维数组元素 引用一维数组元素代码的一般形式为 数组名[下标] 数组下标可以是整型常数或者整型表达式。数组下标范围是0到数组名.length-1。为了确保程序安全性,Java运行系统对数组下标自动进行范围越界检查。 4.数组是一种引用类型 数组也是一种引用类型,一个数组名在不同时间可引用不同数组。代码: myArray =firstArray; myArray =secondArray;4.1.2 多维数组 数组元素有多个下标的数组就是多维数组。多维数组是一种数组的数组,例如,当数组的元素又是一维数组时,就是一个二维数组。在Java程序中,可以有三维数组,或四维数组等。以下以二维数组为例说明多维数组。 1. 声明二维数组 声明二维数组的一般形式有以下3种(类似的代码可以声明多维数组):类型 数组名 [ ][ ] 类型 [ ][ ] 数组名 类型 [ ] 数组名 [ ] 2. 创建二维数组 创建二维数组对象的方法有多种: (1) 直接分配(平衡二维数组——矩阵):类型 数组名[][]=new 类型[长度1][长度2] (2) 从最高维开始,分别对每一维分配不等长的空间(非平衡数组):以二维数组为例,先指定第一维,创建有指定子数组个数的二维数组后,依次对每个子数组确定元素个数,并创建子数组。例如,以下代码创建一个二维数组a[][],它有3个子数组,第一个子数组有4个元素,第2个子数组有5个元素,第3个子数组有2个元素: int a[][] = new int[3]; a[0]=new int [4]; a[1]=new int[5]; a[2]=new int[2];(3) 直接赋值创建 声明二维数组,同时直接给出各子数组的元素。如果子数组的元素个数不同,则创建是一个非平衡的二维数组。例如,代码: int [][]x= {{5,6,7}, {8,9,10,11}, {2,9} }; 3. 引用二维数组 二维数组元素的引用方式是: 数组名[下标1][下标2] 下标1是第一维下标,下标2是第二维下标。 4. 使用二维数组要注意的问题 对于二维数组,要注意以下两点: (1) 二维数组名,length和二维数组名[下标1].length的区别。二维数组名.length是二维数组的子数组个数;二 维数组名[下标1].length是指定子数组的元素个数。(2) 二维数组名[下标]是一维数组。 public class Examle3_1 { public static void main(String args[]) { boolean bTb1[][] = new boolean[4][]; for (int i = 0; i < bTb1.length; i++) { bTb1[i] = new boolean[i + 1]; for (int k = 0; k < bTb1[i].length; k++) { System.out.print(bTb1[i][k] + " "); } System.out.println("");}}}
图形用户界面要先加入组件到容器中,然后再给组件添加监听器,具体如下:图形界面设计基础 图形用户界面Graphical User Interface,GUI 5.1.1AWT和Swing Swing可以看作是AWT (AbstractWindow Toolkit)的改良版,而不是代替AWT,是对AWT的提高和扩展。所以在写GUI 程序时,Swing 和AWT 都要作用。它们共存于Java基础类(Java Foundation Class,JFC)中。 AWT 和 Swing 都提供了构造图形界面元素的类,它们的不同:AWT 依赖于主平台绘制用户界面组件;而Swing 有自己的机制,在主平台提供的窗口中绘制和管理界面组件。Swing 与AWT 之间的最明显的区别是界面组件的外观,AWT 在不同平台上运行相同的程序,界面的外观和风格可能会有一些差异。然而,一个基于 Swing 的应用程序可能在任何平台上都会有相同的外观和风格。Swing 中的类是从AWT继承的,有些Swing类直接扩展AWT中对应的类。例如JApplet、JDialog、JFrame和JWindow。使用Swing设计图形界面,主要引入两个包: javax.swing 包含Swing 的基本类;java.awt.event 包含与处理事件相关的接口和类。 5.1.2组件和容器 组件(component)是图形界面的基本元素,用户可以直接操作,例如按钮。容器(Container)是图形界面的的复合元素,容器可以包含组件,例如面板。Java 语言为每种组件都预定义类,程序通过它们或它们的子类创建各种组件对象,如,Swing 中预定义的按钮类JButton是一种类,程序创建的JButton对象,或JButton子类的对象就是按钮。Java语言也为每种容器预定义类,程序通过它们或它们的子类创建各种容器对象。例如,Swing中预定义的窗口类JFrame是一种容器类,程序创建的JFrame或JFrame子类的对象就是窗口。为了统一管理组件和容器,为所有组件类定义超类,把组件的共有操作都定义在Component类中。同样,为所有容器类定义超类 Container 类,把容器的共有操作都定义在 Container 类中。例如,Container 类中定义了 add()方法,大多数容器都可以用add()方法向容器添加组件。Component、Container 和Graphics 类是AWT 库中的关键类。为能层次地构造复杂的图形界面,容器被当作特殊的组件,可以把容器放入另一个容器中。例如,把若干按钮和文本框分放在两个面板中,再把这两个面板和另一些按钮放入窗口中。5.1.3事件驱动程序设计基础 1.事件、监视器和监视器注册 图形界面上的事件是指在某个组件上发生用户操作。对事件作监视的对象称为监视器,监视器提供响应事件的处理方法。要让监视器与事件对象关联起来需对事件对象作监视器注册,告诉系统事件对象的监视器。 2.实现事件处理的途征 java语言编写事件处理程序主要有两种方案;一个是程序重设handleEvent(Eventevt),采用这个方案的程序工作量稍大一些。另一个方案是程序实现一些系统设定的接口。java按事件类型提供多种接口,作为监视器对象的类需要实现相应的接口,即实现响应事件的方法。当事件发生时,系统内设的handleEvent(Event evt)方法就自动调用监视器的类实现的响应事件的方法。java.awt.event 包中用来检测并对事件做出反应的模型包括以下三个组成元素: (1)源对象:事件“发生”这个组件上,它与一组“侦听”该事件的对象保持着联系。(2)监视器对象:一个实现预定义的接口的类的一个对象,该对象的类要提供对发生的事件作处理的方法。(3)事件对象:它包含描述当事件发生时从源传递给监视器的特定事件的信息。一个事件驱动程序要做的工作除创建源对象和监视器对象之外,还必须安排监视器了解源对象,或向源对象注册监视器。每个源对象有一个已注册的监视器列表,提供一个方法能向该列表添加监视器对象。只有在源对象注册了监视器之后,系统才会将源对象上发生的事件通知监视器对象。3.事件类型和监视器接口 在 java 语言中,为了便于系统管理事件,也为了便于程序作监视器注册,系统将事件分类,称为事件类型。系统为每个事件类型提供一个接口。要作为监视器对象的类必须实现相应的接口,提供接口规定的响应事件的方法。再以程序响应按钮事件为例,JButton类对象button可以是一个事件的激发者。当用户点击界面中与button对应的按钮时,button对象就会产生一个ActionEvent类型的事件。如果监视器对象是obj,对象obj的类是Obj,则类Obj必须实现AWT中的ActionListener接口,实现监视按钮事件的actionPerformed方法。button对象须用addActionListener方法注册它的监视器obj。程序运行时,当用户点击 button 对象对应的按钮时,系统就将一个 ActionEvent 对象从事件激发对象传递到监视器。ActionEvent对象包含的信息包括事件发生在哪一个按钮,以及有关该事件的其他信息。