教材学习内容总结
1.
能够产生事件的对象都可以称为事件源
事件源通过调用相应的方法将某个对象注册为自己的监视器
为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中重写借口中所有方法,那么当事件源发生事件时,监视器就自动调用被类重写的接口方法
2.
文本框、按钮、菜单项、密码框和单选按钮都可以触发ActionEvent事件,即都可以成为ActionEvent事件的事件源
使用方法addActionListener(ActionListener listen)将实现ActionListener接口的类的实例注册为事件源的监视器
该接口中只有一个方法public void actionPerformed(ActionEvent e)
当监视器调用actionPerformed(ActionEvent e)方法时,ActionEvent类事先创建的事件对象就会传递给该方法的参数e
public Object getSource()该方法是从Event继承的方法,ActionEvent事件对象调用该方法可以获取发生ActionEvent事件的事件源对象的引用
public String getActionCommand()ActionEvent对象调用该方法可以获取发生ActionEvent事件时,和该事件相关的一个“命令”字符串
3.
文本区getDocument()方法返回所维护的文档
能触发DocumentEvent事件的事件源使用addDocumentListener(DocumentListener listen)将实现DocumentListener接口的类的实例注册为事件源的监视器
4.
事件源注册监视器的方法是addMouseListener(MouseListener listener)
getModifiers()获取鼠标的左键或右键。鼠标的左键和右键分别使用InputEvent类中的常量BUTTON1_MASK和BUTTON3_MASK来表示
mousePressed(MouseEvent)负责处理在组件上按下鼠标键触发的鼠标事件
mouseReleased(MouseEvent)负责处理在组件上释放鼠标键触发的鼠标事件
mouseEntered(MouseEvent)负责处理鼠标进入组件触发的鼠标事件
mouseExited(MouseEvent)负责处理鼠标离开组件触发的鼠标事件
mouseClicked(MouseEvent)负责处理在组件上单击鼠标键触发的鼠标事件
使用MouseMotionListener接口可以处理以下两种操作触发的鼠标事件:在事件源上拖动鼠标;在事件源上移动鼠标
mouseDragged(MouseEvent)负责处理拖动鼠标触发的鼠标事件
mouseMoved(MouseEvent)负责处理移动鼠标触发的鼠标事件
5.
组件可以使用addFocusListener(FocusListener listener)注册焦点事件监视器
创建监视器的类必须要实现FocusListener接口,该接口有两个方法:
public void focusGained(FocusEvent e),
public void focusLost(FocusEvent e)
当组件从无输入焦点变成有输入焦点触发FocusEvent事件是,监视器调用类实现借口中的focusGained(FocusEvent e)方法;当组件从有输入焦点变成无输入焦点触发FocusEvent事件时,监视器调用类实现接口中的focusLost(FocusEvent e)方法
一个组件也可调用public Boolean requestFocusInWindow()方法可以获得输入焦点
6.
使用KeyListener接口处理键盘事件,该接口中有如下3个方法:
public void keyPressed(KeyEvent e)
public void keyTyped(KeyEvent e)
public void KeyReleased(KeyEvent e)
某个组件使用addKeyListener方法注册监视器之后,当该组件处于激活状态时,用户按下键盘上某个键时,触发KeyEvent事件,监视器调用keyPressed方法;用户释放键盘上按下的键是,触发KeyEvent事件,监视器调用keyReleased方法。
用KeyEvent类的public int getKeyCode()方法,可以判断哪个键被按下、敲击或释放,getKeyCode()方法返回一个键码值。也可以用KeyEvent类的public char geyKeyChar()判断哪个键被按下、敲击或释放,getKeyChar()方法返回键上的字符
7.
调用setDefaultCloseOperation(int operation)方法设置窗口的关闭方式,参数Operation取JFrame的static常量
如果准备处理窗口事件,必须事先保证窗口的默认关闭方式为DO_NOTHING_ON_CLOSE(什么也不做)
WindowEvent创建的事件对象调用getWindow()方法可以获取发生窗口事件的窗口
8.
如果一个对话框是有模式的对话框,那么当对话框处于激活状态时,只让程序响应对话框内部的事件,而且将阻塞其他线程的执行,用户不能再激活对话框所在程序中的其他窗口,直到该对话框消失不可见。无模式对话框处于激化状态时,能再激活其他窗口,也不阻塞其他线程的执行
9.
可以用javax.swing包中的JOptionPane类的静态方法:
public static void showMessageDialog(Component parentComponent,String message,String title,int messageType)创建一个消息对话框,其中参数parentComponent指定对话框可见时的位置,如果parentComponent为null,对话框会在屏幕的正前方显示出来;如果组件parentComponent不空,对话框在组件parentComponent的正前面居中显示。message指定对话框上显示的消息,title指定对话框的标题,messageType取值是JOptionPane中的类常量:INFORMATION_MESSAGE,WARNING_MESSAGE,ERROR_MESSAGE,
QUESTION_MESSAGE,PLAIN_MESSAGE
10.
JOptionPane类的静态方法:
public static void showInputDialog(Component parentComponent,Object message,String title,int messageType)创建一个输入对话框,其中参数parentComponent指定输入对话框所依赖的组件,输入对话框会在该组件的正前方显示出来,如果parentComponent为null,输入对话框会在屏幕的正前方显示出来,参数message指定对话框上提示的消息,参数title指定对话框的标题,参数messageType可取的有效值是JOptionPane中的类常量:INFORMATION_MESSAGE,WARNING_MESSAGE,ERROR_MESSAGE,
QUESTION_MESSAGE,PLAIN_MESSAGE
11.
JOptionPane类的静态方法:
public static int showConfirmDialog(Component parent Component,Object message,String title,int optionType)得到一个确定对话框,其中参数parentComponent指定确认对话框可见时的位置,确认对话框会在参数parentComponent指定的组件的正前方显示出来,如果parentComponent为null,确认对话框会在屏幕的正前方显示出来,参数message指定对话框上提示的消息,参数title指定确定对话框的标题,参数optionType可取的有效值是JOptionPane中的类常量:YES_NO_OPTION,YES_NO_CANCEL_OPTION,
OK_CANCEL_OPTION
当确认对话框消失后,showConfirmDialog方法会返回下列整数值之一:JOptionPane.YES_OPTION, JOptionPane.NO_OPTION, JOptionPane.CANCEL_OPTION, JOptionPane.OK_OPTION, JOptionPane.CLOSED_OPTION
12.
可以用javax.swing包中的JColorChooser类的静态方法:
public static Color showDialog(Component component,String title,Color initialColor)创建一个有模式的颜色对话框,其中参数component指定颜色对话框可见时的位置,颜色对话框在参数component指定的组件的正前方显示出来,如果component为null,颜色对话框在屏幕的正前方显示出来。title指定对话框的标题,initialColor指定颜色对话框返回的初始颜色。用户通过颜色对话框选择颜色后,如果单击“确定”按钮,那么颜色对话框将消失,showDialog()方法返回对话框所选择的颜色对象。如果单击“撤销”按钮或关闭图标,那么颜色对话框将消失,showDialog()方法返回null。
13.
对话框是一个容器,它的默认布局是BorderLayout,对话框可以添加组件,实现与用户的交互操作
对话框可见时,默认地被系统添加到显示器屏幕上,因此不允许将一个对话框添加到另一个容器中
JDialog()构造一个无标题的初始不可见的对话框,对话框依赖一个默认的不可见的窗口,该窗口有Java运行环境提供
JDialog(JFrame owner)构造一个无标题的初始不可见的无模式的对话框,owner是对话框所依赖的窗口,如果owner取null,对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供
14.
要想构造一个树组件,必须事先为其创建结点对象。任何实现MutableTreeNode接口的类创建的对象都可以成为树上的结点。
每一个结点关联着一个描述该结点的文本标签和图像图标
DefailtMutableTreeNode类的两个常用的构造方法是:
DefaultMutableTreeNode(Object userObject)
DefaultMutableTreeNode(Object userObject,boolean allowChildren)
第一个构造方法创建的结点默认可以有子结点,即它可以使用方法add()添加其他结点作为它的子结点。如果需要,一个结点可以使用setAllowsChildren(boolean b)方法来设置是否允许有子结点。两个构造方法中的参数userObject用来指定结点中存放的对象,结点可以调用getUserObject()方法得到结点中存放的对象
使用JTree的构造方法JTree(TreeNode root)创建根结点是root的树组件
15.
树组件可以触发TreeSelectionEvent事件,树使用addTreeSelectionListener(TreeSelectionListener listener)方法获得一个监视器
创建监视器的类必须实现TreeSelectionListener接口,此接口中的方法是public void valueChanged(TreeSelectionEvent e)
16.
JTable()创建默认的表格模型
JTable(int a,int b)创建a行、b列的默认模型表格
JTable(Object data[][],Object columnName[])创建默认表格模型对象,并且显示由data指定的二维数组的值,其列名由数组columnName指定
在表格中输入或修改数据后,需按回车或用鼠标单击表格的单元格确定所输入或修改的结果。当表格需要刷新显示时,让表格调用repaint方法
17.
要求创建监视器的类必须实现ActionListener接口的子接口Action
编写AbstractAction类的子类时,只要重写public void actionPerform(ActionEvent e)方法即可,该方法是ActionListener接口中的方法
按钮首先调用public final InputMap getInputMap(int condition)方法返回一个InputMap对象,其中参数condition取值JComponent类的下列static常量:
WHEN_FOCUSED(仅在敲击键盘发生同时组件具有焦点时才调用操作)
WHEN_IN_FOCUSED_WINDOW(当敲击键盘发生同时组件具有焦点时,或者组件处于具有焦点的窗口中时调用操作。注意,只要窗口中的任意组件具有焦点,就调用向此组件注册的操作)
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT(当敲击键盘发生同时组件具有焦点时,或者该组件是具有焦点的组件的祖先是调用该操作)
调用方法public void put(KeyStroke keyStroke,Object actionMapKey)将敲击键盘上的某键指定为按钮的键盘操作
按钮调用方法public final ActionMap getActionMap()返回一个ActionMap对象
该对象actionmap调用方法public void put(Object key,Action action)为按钮的键盘操作指定监视器(实现敲击键盘上的键通知监视器的过程)
button.setMnemonic(‘B’)仅仅设置了按钮的快捷键是B,即用户可以用组件Alt+B代替用鼠标单击按钮(可以不涉及事件处理的问题)
18.
方法paintAll(g)将打印出该组件及其子组件。如果调用方法paint(g)将打印出该组件本身,但不打印子组件。注意如果调用方法paint(g)将打印出该组件本身的形状,但不打印组件上的其他信息,比如文字图形等
按钮_1.paintAll(g);按钮_2.paintAll(g);“按钮_2”就会被打印在“按钮_1”的上面,盖住按钮_1
方法translate(int x,int y)改变组件在打印页中打印的位置
19.
编写清单文件时,在“Mainfest-Version:”和“1.0”之间,“Main-Class:”和主类“A”之间,以及“Created-By:”和“1.6”之间必须有且只有一个空格
参数c表示要生成一个新的JAR文件,f表示要生成的JAR文件的名字,m表示文件清单文件的名字
参考资料
《java 2实用教程(第5版)》