-
String 类常见的方法:
length():返回字符串的字符个数 charAt(int index):返回字符串中 index 位置的字符 equals():比较字符串中所包含的内容是否相同 ,与地址无关
// 这里说明一下 “ == ” 比较个变量本身的值,即两个对象在内存中的首地址
concat(String str):将 str 连接在当前字符串的尾部
//系统中重载运算符 “ + ” 可连接两个操作数 ,只要其中有一个是字符串 ,则另一个也自动变为字符串类型
-
StringBuffer 类常见的方法:
append(String str):将 str 连接在当前字符串的尾部
-
extends 关键字:
//格式:
public A extends B
{
……
}
/*
A为子类 ,B为父类
this表示子类 ,super表示父类
*/
-
final关键字
可以用来修饰一个类 ,也可以用于修饰类中的成员变量或成员方法 。 用这个关键字修饰的类或类的成员都是不能改变的 。 如果一个方法被定义为 final ,则不能被重写 ; 如果一个类被定义为 final ,则它不能有子类 。
-
abstract 抽象类:
public abstract class Shape
{
…… //定义体
}
如果要使用抽象方法 ,要用子类去继承抽象类并重写里面的抽象方法 。
只有抽象类才能具有抽象方法 。
如果一个抽象类除了抽象方法外什么都没有 ,则使用接口更合适 。
- interface 接口类:
【接口修饰符】 interface 接口名称 【 extends 父类名 】
{
…… //方法原形或静态变量
}
实现接口 :用关键字 implements 。
可以实现多个接口 。
实现接口的类必须实现接口中的所有抽象方法 。
public class className implements interfaceName
{
…… //对抽象方法的重写
}
Java 通过允许一个类实现多个接口从而实现多重继承的功能 。
- 包装类
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
void | Void |
-
Exception 异常
公共异常,最常用的异常: ArithmeticException异常——整数除法中,如果除数为零,则发生该异常 。 NullPointerException异常——如果一个对象还没有实例化 ,当访问该对象或调用它的方法 ,则发生该异常 。 NegativeArraySizeException异常——创建数组时 ,如果元素个数是个负数 ,则发生该异常 。 ArrayIndexOutOfBoundsException异常——访问数组元素时 ,如果数组下标越界 ,则发生该异常 。 ArrayStoreException异常——程序试图存取数组中错误的数据类型 。 SecurityException异常——该类异常一般在浏览器内抛出 。 FileNotFoundException异常——试图存取一个并不存在的文件 。 IOException异常——该异常是指通常的 I/O 错误 。
-
try-catch块—— 异常处理 ;
例子如下:
try
{
// 其他代码
anObject.readString(……); // 可能抛出一个IOException
// 其他代码
}
catch(IOException e)
{
// 异常响应的代码
System.ou.println(e.getMessage());
}
-
throws 语句 —— 抛出异常;
例子如下:
public void connectMe(String servename) throws ServerTimedOutException
{
int sucess;
int portToConnect = 80;
success = open (serveName , portToConnect);
if(success == -1)
{
throw new ServerTimedOutException();
}
}
// 如果方法内含有一个抛出异常的 throw 语句 ,则在方法头需要添加一个 throws 子句 ,而不是在方法体内捕获异常 。
-
顶层容器 ——(JFrame 、JApplet 、JDialog 、JWindow)
每个顶层容器都有一个内容窗格 。 顶层容器中除菜单之外的组件都放在这个内容窗格中 。
将组件放入内容窗格的两种方法:
一种是通过顶层容器的 getContentPane( ) 方法获得其默认的内容窗格 ,然后将组件添加到内容窗格中 。例如:
Container contentPane = frame.getContentPane();
contentPane.add(button , BorderLayout.CENTER);
另一种方法是创建一个新的内容窗格取代顶层容器的默认的内容窗格 ,通常的做法是创建一个 JPanel 的实例 ,然后将组件添加到 JPanel 实例中 ,再通过顶层容器的 setContentPane( ) 方法将 JPanel 实例设置成新的内容窗格 。例如:
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());
contentPane.add(button , BorderLayout.CENTER);
frame.setContentPane(contentPane);
向顶层容器的内容窗格添加组件时 ,可以直接调用顶层容器的 add( ) 方法 。
这与调用内容窗格的 add( ) 方法是等价的 。
-
面板 —— JPanel
面板不能独立存在 ,必须被添加到其他容器内部 ,面板可以嵌套 。
-
FlowLayout布局管理器 —— 不强行设定组件的大小 ,而是允许组件拥有各自希望的尺寸
三种构造方法: 1. public FlowLayout( ) ; 2. public FlowLayout( int align ) ; // 选择组件的对齐方式 FlowLayout.LEFT —— 左对齐 FlowLayout.RIGHT —— 右对齐 FlowLayout.CENTER —— 居中 3. public FlowLayout( int align , int hgap , int vgap ) ; // 可以设定组件的水平间距和垂直间距
-
BorderLayout布局管理器 —— 将容器划分成5个区域
BorderLayout.NORTH——容器上部 ; BorderLayout.SOUTH——容器下部 ; BorderLayout.WEST——容器左部 ; BorderLayout.EAST——容器右部 ; BorderLayout.CENTER——容器中部 ; 两种构造方法: 1. BorderLayout( ); // 各部分的间距为0 2. BorderLayout( int hgap , int vgap ); // 各部分间具有指定间距 组件必须通过 add( ) 方法加入容器中的指定区域 。 在容器的每个区域 ,只能加入一个组件 。 如果试图向某个区域加入多个组件 ,那么只有最后一个组件时有效的 。 如果真的要向某个区域加入多个组件 ,首先在该区域设置一个内部容器 —— JPanel 组件 ,然后将需要的多个组件放入 JPanel 中 。
// 例如将一个按钮加入到框架的南部 :
frame = new JFrame("Frame Title");
button = new JButton("Press Me");
frame.getContentPane().add(button , BorderLayout.SOUTH);
//最后一句也可写成 frame.getContentPane().add(button , "SOUTH");
/*
frame.getContentPane().add(button);
如果没有指定将组件放到哪个区域 ,那么它将默认地被放在 Center 区域 。
/*
//最后一点注意的是 ,区域名称和字母的大小写一定要书写正确 。
-
GridLayout布局管理器 —— 将容器空间划分成若干行乘若干列的网格 ,组件依次放入其中 ,每个组件占据一格 。
三种构造方法: 1. public GridLayout( ); // 创建一个只有一行的网格 2. public GridLayout( int rows , int cols ); // 创建指定的行数和列数的网格 3. public GridLayout( int rows , int cols , int hgap , int vgap ); // 还有网格间的水平间距和垂直间距 每行网格从左至右填充 ,一行用完之后转入下一行 。 当容器改变时 ,所管理的组件的相对位置不会发生变化 ,但组件的大小会随之改变 。
-
GardLayout布局管理器 —— 将容器中的组件处理为一系列卡片 ,每一时刻只显示出其中的一张 。
-
BoxLayout布局管理器 —— 将容器中的组件按水平方向排成一列或按垂直方向排成一列
当组件排成一行时 ,每个组件可以有不同的宽度 当组件排成一列时 ,每个组件可以有不同的高度 构造方法: BoxLayout( Container target , int axis ); // Container 型参数 target 指明是为哪个容器设置此 BoxLayout 布局管理器 /* int 型参数 axis 指明组件的排列方向 BoxLayout.X_AXIS —— 按水平方向排列 BoxLayout.Y_AXIS —— 按垂直方向排列 /* 专门使用 BoxLayout 的特殊容器 —— Box 类
-
其他布局管理器 —— SpringLayout 等
-
特殊场合可以不使用布局管理器
先调用容器的 setLayout( null ) 将布局管理器设置为空 再用setBounds( int x , int y , int width , int height )进行自定义设置 // 前两个 int 型参数设置组件的位置 //后两个 int 型参数设置组件的宽度和高度
-
Button —— 按钮
JButton —— 普通按钮 构造方法: JButton( ); // 创建一个既没有显示文本也没有图标的按钮 JButton( Icon icon ); // 创建一个没有显示文本但有图标的按钮 JButton( String text ); // 创建一个有显示文本但没有图标的按钮 JButton( String text , Icon icon ); // 创建一个既有显示文本又有图标的按钮 JToggleButton —— 切换按钮 有两种状态:选中状态和未选中状态 构造方法: 构造方法中如果没有指定按钮的初始状态 ,则默认状态下处于未选中状态 。 多加三种 JToggleButton( Icon icon ,boolean selected ); // 创建一个没有显示文本但有图标和指定初始状态的切换按钮 JToggleButton( String text ,boolean selected ); // 创建一个有显示文本和指定初始状态但没有图标的切换按钮 JToggleButton( String text , Icon icon ,boolean selected ); // 创建一个既有显示文本又有图标和初始状态的切换按钮 JCheckBox —— 复选按钮 JRadioButton —— 单选按钮 这两个都是 JToggleButton 的子类 ,构造方法的格式与 JToggleButton 相同 ,也具有选中和未选中两种状态 在 JToggleButton 类中定义了一个 isSelected( ) 方法 ,通过该方法可以获知按钮的当前状态 当返回值为真( true )时表示处于选中状态 当返回值为假( false )时表示处于未选中状态
-
Label —— 标签
JLabel( ); // 构造一个既不显示文本信息也不显示图标的空标签 JLabel( Icon image ) ; // 构造一个显示图标的标签 JLabel( String text ) ; // 构造一个显示文本信息的标签 JLabel( Icon image ,int horizontalAlignment ) ; // 构造一个显示图标的标签 ,水平对齐方式由 int 型参数 horizontalAlignment 指定 JLabel( String text ,int horizontalAlignment ) ; // 构造一个显示文本信息的标签 ,水平对齐方式由 int 型参数 horizontalAlignment 指定 JLabel( String text ,Icon icon ,int horizontalAlignment ) ; // 构造一个同时显示文本信息和图标的标签 ,水平对齐方式由 int 型参数 horizontalAlignment 指定 水平对齐方式由 int 型参数 horizontalAlignment 可取: JLabel.LEFT —— 左对齐 JLabel.RIGHT —— 右对齐 JLabel.CENTER —— 居中 setHorizontalAlignment( int alignment ) 取值:JLabel.LEFT 、JLabel.RIGHT 、JLabel.CENTER setVerticalAlignment( int alignment ) 取值: JLabel.TOP —— 顶部 JLabel.BOTTOM —— 底部 JLabel.CENTER —— 中部 setText( String text ) 方法修改显示在标签上的文本信息 setIcon( Icon icon ) 方法修改标签上的图标
-
JComboBox —— 组合框
是一个下拉菜单,有两种形式:不可编辑和可编辑的 。 对不可编辑的组合框 ,用户只能在现有的选项列表中进行选择 。 对于可编辑的组合框 ,用户既可以在现有选项中选择 ,也可以输入新的内容 。 两种构造方法: 1. JComboBox( ); // 创建一个没有任何可选项的组合框 2. JComboBox( Object[ ] items ); // 根据 Object 数组创建组合框 ,Object 数组的元素即为组合框中的可选项 构造方法例子如下:
String[] itemList = {"One" , "Two" , "Three" , "Four" , "Five"};
JComboBox jcb = new JComboBox(itemList);
在组合框对象创建之后 ,可以通过setEditable(true)方法将其设置为可编辑的 。
在 JComboBox 类中定义了相关的方法 ,可以添加或删除可选项 。
-
JList —— 列表
4种构造方法: 1. JList( ); // 构造一个空列表 2. JList( ListModel dataModel ); // 构造一个列表 ,列表的可选项由 ListModel 型参数 dataModel 指定 3. JList( Object[ ] listData ); // 构造一个列表 ,列表的可选项由对象数组 listData 指定 4. JList( Vector listData ); // 构造一个列表 ,列表的可选项由 Vector 型参数 listData 指定 列表既支持单项选择也支持多项选项 JList 中定义的 setSelectionMode( int selectionMode ) 方法对列表的选择模式进行设置 int 型参数 selectionMode 可以为: ListSelectionModel.SINGLE_SELECTION —— 只能进行单项选择 ListSelectionModel.SINGLE_INTERVAL_SELECTION —— 多项选择 ,但多个选项必须是连续的 ListSelectionModel.MULTIPLE_INTERVAL_SELECTION —— 多项选择 ,多个选项可以使间断的 ,这是选择模式的默认值
-
文本组件:用于显示信息和提供用户输入功能
文本域:是一个单行的文本输入框 ,可用于输入少量文本 5种构造方式: 1. JTextField( ); // 构造一个空文本域 2. JTextField( int columns ); // 构造一个具有指定列数的空文本域 ,int 型参数 columns 指定文本域的列数 3. JTextField( String text ); // 构造一个显示指定初始字符串的文本域 ,String 型参数 text 指定要显示的初始字符串 4. JTextField( String text , int columns ); // 构造一个具有指定列数 、并显示指定初始字符串的文本域 ,String 型参数 text 指定要显示的初始字符串 ,int 型参数 columns 指定文本域的列数 5. JTextField( Document doc , String text , int columns ); // 构造一个使用指定文档 、具有指定列数并显示指定初始字符串的文本域 ,Document 型参数 doc 指定使用的文档 ,String 型参数 text 指定要显示的初始字符串 ,int 型参数 columns 指定文本域的列数 当参数 doc 为 null ,此时一个默认的 PlainDocument 文档对象将会被创建 。 在其他构造方法中 ,由于未指定文本域所使用的的文档 ,也会创建一个默认的 PlainDocument 文档对象 。 文本区:一个多行多列的文本输入框 多种构造方法: 1. JTextArea( ); 2. JTextArea( String text ); 3. JTextArea( int rows , int columns ); 4. JTextArea( String text , int rows , int columns ); 5. JTextArea( Document doc ); 6. JTextArea( Document doc , String text , int rows , int columns ); // 构造一个使用指定文档 ,具有指定行数和列数 ,并显示指定初始字符串的文本区 ,Document 型参数 doc 指定使用的文档 ,String 型参数 text 指定要显示的初始字符串 ,int 型参数 rows 和 columns 指定文本区的行数和列数 文本区本身不带滚动条 ,因此一般将其放入滚动窗格 JScrollPanel 中 JTextArea 类中定义了多种对文本区进行操作的方法: 1. append( String str ); // 将指定文本追加到文本区 2. insert( String str , int pos ); // 将指定文本插入文本区的特定位置 3. replaceRange( String str , int strat , int end ); // 用指定文本替换文本区中的部分内容
-
菜单组件
菜单栏:窗口中的主菜单 ,用来包容一组菜单 构造方法:JMenuBar( ); 菜单项:菜单系统的最下一级 构造方法: 1. JMenItem( Icon icon ); 2. JMenItem( String text ); 3. JMenItem( String text , Icon icon ); 4. JMenItem( String text , int mnemonic ); // 构造一个显示文本并且具有快捷键的菜单项 ,文本由 String 型参数 text 指定 ,快捷键由 int 型参数 mnemonic 指定 addSeparator( ) 和 insertSeparator( int index ) 方法可以在某个菜单的各个菜单单项间加入分隔线 复选菜单项:前面有一个小方块 构造方法: 1. JCheckBoxMenuItem( Icon icon ); 2. JCheckBoxMenuItem( String text ); 3. JCheckBoxMenuItem( String text , boolean b ); 4. JCheckBoxMenuItem( String text , Icon icon ); 5. JCheckBoxMenuItem( String text , Icon icon , boolean b ); 单项菜单项:前面有个小圆圈 构造方法: 6. JRadioButtonMenuItem( Icon icon ); 7. JRadioButtonMenuItem( Icon icon , boolean selected); 8. JRadioButtonMenuItem( String text ); 9. JRadioButtonMenuItem( String text , boolean selected); 10. JRadioButtonMenuItem( String text , Icon icon); 11. JRadioButtonMenuItem( String text , Icon icon , boolean selected); 弹出式菜单: 构造方法: public JPopupMenu( ); // 构造一个没有名称的弹出式菜单 public JPopupMenu( String label ); // 构造一个指定名称的弹出式菜单