1。数组
对于数组的封装类Arrays类,中的binarySearch(T[] test,a)方法,对于数组test应当先调用sort()方法,才能调用
2。集合
对于增强型for循环,
for(T xx : 变量(数组,List,Set)) {
}
对于集合中掌握的基本类和接口:
Collection
-Set
-TreeSet
-HashSet
-LinkedHashSet
-List
-ArrayList
-LinkedList
Map
-TreeMap
-HashMap
-LinkedHashMap
Iterator
Arrays
Collections
Property
其中ListList和ArrayList替代了Vector
HashMap替代了HashTable
LinkedList替代了Stack
Comparable 接口比较接口
当重写equals方法的时候一定要重写hashcode方法
io
InputStream 和 OutputStream都是字节流
Reader和Writer是字符流
写数据的时候记得一定要加上flush()方法
输入流:
输入流 描述
ByteArrayInputStream 把字节数组转换为输入流
FileInputStream 从文件中读取数据
StringBufferInputStream 把字符串转换成输入流,已过时,取代:StringBufferReader
PipedInputStream 连接一个PipedOutStream 用于线程
SequenceInputStream 把几个输入流转换成一个输入流
ObjectInputStream 对象输入流(对象序列化,反序列化)
FilterInputStream 装饰器,具有扩展其他输入流的功能
输出流:
输出流 描述
ByteArrayOutputStream 向字节数组(即内存的缓冲区)中写数据
FileOutputStream 向文件中写数据
PipedOutputStream 向管道中输出数据,与PipedInputStream搭配使用
ObjectOutputStream 对象输出流,对象的序列化和反序列化
FilterOutputStream 装饰器,扩展其他输出流的动能
File类
掌握File类的api方法的操作
GUI
1. 布局管理器
如果不希望通过布局管理器来管理布局,可以调用容器的setLayout(null)方法,这样布局管理器就被取
消了。
接下来必须调用容器中的每个组件的setLocation(),setSize()或者setBouds()方法为这些组件在容器中 一一定位。
布局管理器种类:
FlowLayout 流布局
BorderLayout 东南西北中布局
GridLayout 网格布局
CardLayout 卡片布局
GridBagLayout 网格包布局管理器
GridBagLayout在网格的基础上提供更为复杂的布局。和GridLayout不同,GridBagLayout允许容器中各个组件的大小各不相同,还允许单个组件所在的显示区域占据多个网格。使用GridBagLayout的布局管理器的步骤如下。
1。创建GridBagLayout布局管理器,并使容器采用该布局管理器
GridBagLayout layout = new GridBagLay();
container.setLayout(layout);
2。创建GridBagConstraints对象。
GridBagConstraints constraints = new GridBagConstraints();
3。为第一个添加到容器中的组件设置GridBagConstraints的各个属性。
constraints.gridx=1; //设置网格的左上角的x坐标
constraints.gridy=1; //设置网格的左上角的y坐标
constraints.gridwidth=1; //设置网格的宽度
constraints.gridheight=1; //设置网格的高度
4。通知布局管理器放置第一个组件时的GridBagConstraints信息
layout.setConstraints(component1,constraints);
5。向容器中添加第一个组件。
container.add(component1);
6。重复步骤(3)~(5),将每个组件都添加到容器中
事件处理器
MouseMotionListener 和 MouseListener都监听MouseEvent事件。
MouseMotionListener主要处理和鼠标移动的事件,它包括以下方法。
* mouseMoved():用户未按下鼠标键,直接移动鼠标调用的方法。
* mouseDragged():用户按下鼠标键,然后拖动鼠标时调用此方法。
MouseListener主要处理和鼠标被点击有关的事件,它包括以下方法。
* mouseClicked():当用户单击鼠标时调用此方法
* mousePressed():当用户按下鼠标时调用此方法
* mouseReleased(): 当用户释放鼠标时调用此方法
* mouseExited():鼠标退出组件的显示区域时调用此方法
* mouseEntered():鼠标进入组件的显示区域时调用此方法。
Awt绘图:
在Component类中提供了3个和绘图有关的方法。
*paint(Graphics g):绘制组件的外观
*update(Graphics g): 调用paint()方法,刷新组件的外观。
*repaint():调用update方法刷新组件的外观
以上3个方法的调用关系:repaint()调用update(),update()调用paint() 这个是对于java.awt.Frame类而言,但是对于javax.swing.JFrame类而言,则是,repaint直接调用paint()
Point类
Graphics类
Component类的paint(Graphics g)方法有一个Graphics类型的参数。Graphics类代笔画笔,提供了回执各种图形的方法,常见的方法有:
* drawLine(int x1,int y1,int x2, int y2) 画一条直线
* drawString(String string, int left, int bottom) 画一个字符串,从(left,bottom)坐标开始
* drawImage(Image image,int left, int top, ImageObserver observer) 画一个图片
* drawRect(int left, int top, int width,int height) 画矩形
* drawOval(int x, int y, int width, int height) 画椭圆
可以为Graphics对象设置绘图颜色和字体属性,方法为:
setColor(Color color) 设置画笔的颜色
setFont(Font font) 设置画笔的字体
如果不希望在每次调用paint()方法前先清空界面,可以在类中如下方式覆盖update()方法
public void update(Graphics g) {
paint(g);
}
//对于JFrame而言是repaint直接调用paint方法,而对于Frame而言是repaint调用update方法,update方法调用paint方法
实现擦除的效果思路:每次画之前先将整个画面以背景色为颜色重画一次
Color c = g.getColor();
g.setColor(BACKGROUND_COLOR);
g.fillRect(0, 0, WIDTH, HEIGHT); //这个则是起到擦除的效果
g.setColor(c);
g.setColor(color);
g.fillRect(x, y, width, height);
Swing组件
按钮:javax.swing.JButton setMnemonic(int i) //设置快捷键
边框:javax.swing.border.Border
菜单
菜单的组织方式为:一个菜单条JMenuBar中可以包含多个菜单JMenu,一个菜单JMenu中可以包含多个菜单选项JMenuItem。有一些支持菜单的组件,如JFrame,JDialog和Japplet,都有一个setMenuBar(JMenuBar bar)方法,可以用这个方法来设置菜单条
JMenuItem有两个子类,即JRadioButtonMenuItem和JCheckBoxMenuItem,他们分别表示单选菜单项和复选菜单项,当用户选择了某个菜单项,就会触发一个ActionEvent事件,该事件由ActionListener负责处理
JPopueMenu:
右键的时候出现的选项卡:要实现MouseAdapter类的mousePressed和mouseReleased方法
JDialog:对话框
JDialog表示对话框。对话框时在现有窗口的基础上弹出的另一个窗口。对话框可用来处理个别细节问题,使得这些细节不与原先窗口的内容混为一起。JDialog的默认布局管理器为BorderLayout,它有以下形式的构造方法。
public JDialog(Frame ower,String title,boolean modal)
以上参数ower表示对话框所属的Frame,参数title表示对话框的标题,参数modal有以下两个可选值。
* 参数modal为true:表示模式对话框,这是JDialog的默认值。如果对话框显示,那么其他窗口都处理不活动状态,只有当用户关闭了对话框,才能操纵其他窗口。
* 参数modal为false:表示非模式对话框。当对话框被显示,其他窗口照样处于活动状态。
当对话框被关闭时,通常不希望结束整个应用程序,因此需要调用JDialog的dispose()方法释放对话框所占用的资源。
JFileChoose:文件对话框 文件打开,文件另存为
JOptionPane:消息框
* showMessageDialog():显示包含信息提示的对话框
* showOptionDialog():显示让用户选择一个可选项的对话框
* showInputDialog(): 显示接收用户输入文本的对话框
* showConfirmDialog():显示让用户选择Yes/No的对话框
Swing绘图
Swing组件的绘图机制与AWT组件比较相似。区别在与前者的JComponent类覆盖了ComPonent类的paint方法。JComponent类的paint()方法把绘图任务委派给3个protected类型的方法来完成。
* paintComponent(): 画当前组件
* paintBorder():画组件的边界
* paintChildren():
对于用户自定义的Swing组件,如果需要绘制图形,则只需要覆盖paintComponent()方法即可,为了保证图形正常
显示,必须在这个方法中先调用super.paintComponent()方法
JApplet对于这个只要覆盖init方法就可以了
BoxLayout布局管理器