目录
事件处理
在窗口添加好面板和组件之后,但只是一个界面,不能执行其中的功能,需要添加事件处理来实现相应的功能。用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输入一个字符、点击鼠标等。
Java中,事件处理的基本思路:
1. 一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;
2.一个事件源必须注册监听器以便监听器可以接受关于一个特定事件的通知。
1.按钮点击事件:
例如向按钮1添加点击事件:
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击登录");
}
});
2.鼠标事件:
向按钮2添加鼠标事件:
jButton2.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标点击");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按下,但没有松开");
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("鼠标松开");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标悬停");
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("鼠标移走");
}
});
3.键盘事件:
例如向文本域添加键盘事件
jTextField.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// System.out.println("键盘输入完成");
}
@Override
public void keyPressed(KeyEvent e) {
// System.out.println("键盘按下");
}
@Override
public void keyReleased(KeyEvent e) {
// "释放键盘"
System.out.println(jTextField.getText());
}
});
4.添加窗口事件:
例如向当前窗口添加窗口事件:
this.addWindowListener(new WindowAdapter() {//窗口适配器WindowAdapter,也可使用new WindowListener()
@Override
public void windowClosing(WindowEvent e) {
int res = JOptionPane.showConfirmDialog(null,"确定退出聊天室?","操作提示",JOptionPane.OK_CANCEL_OPTION);//弹出一个对话框
if (res == 0){//确认退出
dispose();
}
}
});
对话框
JOptionPane对话框
1. showMessageDialog():消息对话框
五种消息类型,图标不同:
ERROR_MESSAGE | 错误消息提示 |
INFORMATION_MESSAGE | 信息提示 |
WARNING_MESSAGE | 警告提示 |
QUESTION_MESSAGE | 问题提示 |
PLAIN_MESSAGE | 简洁提示 |
例如:
JOptionPane.showMessageDialog(null, "发送内容不能为空");
图示:
2. showConfirmDialog():确认对话框
主要有四种消息类型图标不同:
DEFAULT_OPTION | 默认选项 |
YES_NO_OPTION | 是/否选项 |
YES_NO_CANCEL_OPTION | 是/否/取消选项 |
OK_CANCEL_OPTION | 确定/取消 |
例如:
JOptionPane.showConfirmDialog(null,"确定退出聊天室?","操作提示",JOptionPane.OK_CANCEL_OPTION);
图示: