主要学习了监听器和用户登录界面
事件处理
事件和监听器
每当一个按钮按下时,实际上按钮的状态就发生了改变,那么此时就会产生一个事件,而如果要想处理此事件则就需要事件的监听者不断的监听事件的变化,并根据这些事件进行相应的处理。在Swinga编程中,依然使用了最早AWT的事件处理方式,所有的事件类(基本上任意的一个组件都有对应的事件)都是EventObject类的子类
窗体事件
VindowListener是专门处理窗体的事件监听接口,一个窗体的所有变化,例如:窗口打开、关闭等都可以使用这个接口进行监听。
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class WindowTest1 {
public static void main(String[] args) {
JFrame jFrame = new JFrame("大学");
Container cont = jFrame.getContentPane();
jFrame.addWindowListener( new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
System.out.println("窗口打开了");
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("窗口正在关闭了");
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("窗口关闭了");
}
@Override
public void windowIconified(WindowEvent e) {
System.out.println("窗口最小化了");
}
@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("窗口恢复正常");
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("窗口活动了");
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("窗口不活动了");
}
});
Dimension dimension = new Dimension(400,400);
jFrame.setSize(dimension);
Point point = new Point(250,300);
jFrame.setLocation(point);
jFrame.setBackground(Color.BLACK);
jFrame.setVisible(true);
}
}
动作事件及监听处理
一个按钮要想让其变得有意义,就必须使用事件处理在Swingl的事件处理中,可以使用ActionListener接口处理按钮的动作事件,ActionListener接口只定义了一个方法。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActionListenerTest {
public static void main(String[] args) {
JFrame frame = new JFrame("大学");
JButton button = new JButton("点击我");
JLabel label = new JLabel("大学");
label.setFont(new Font("serief",Font.BOLD,20));
JTextField field = new JTextField();
Panel panel = new Panel();
panel.setLayout(new GridLayout(1,3,5,5));
panel.add(label);
panel.add(field);
panel.add(button);
frame.add(panel);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击成功");
label.setText(field.getText());
}
});
frame.setSize(400,100);
frame.setLocation(500,500);
frame.setVisible(true);
}
}
键盘事件及监听处理
在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可。此接口定义了如下的方法。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KeyListenerTest {
public static void main(String[] args) {
JFrame frame = new JFrame("大学");
JTextArea text = new JTextArea();
JScrollPane pane = new JScrollPane(text);
text.setFont(new Font("serief",Font.BOLD,40));
text.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
});
frame.add(pane);
frame.setSize(400,400);
frame.setLocation(500,500);
frame.setVisible(true);
}
}
鼠标事件及监听处理
如果想对一个鼠标的操作进行监听,例如,鼠标按下、松开等,则可以实现MouseListener接口
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MouseListenerTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("大学");
Container cont = jFrame.getContentPane();
JButton button = new JButton("点击我!!");
button.setBounds(100,150,200,100);
jFrame.setLayout(null);
button.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) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
Dimension dimension = new Dimension(400,400);
jFrame.setSize(dimension);
Point point = new Point(250,300);
jFrame.setLocation(point);
jFrame.setBackground(Color.BLACK);
jFrame.add(button);
jFrame.setVisible(true);
}
}