键盘事件及监听处理

在Swing的事 件处理中也可以使用KcyListcner接口对键盘的操作进行监听。

此接口定义了如下方法:

如果想要取得键盘键入的内容,可以通过keyEvent取得,此类的常用方法如下:

鼠标事件及其监听
如果想对一个鼠标的操作进行监听,例如,鼠标按下、松开等,则可以实现MouseListener接口

MouseEvent

在每个事件触发后都会产生MouseEvent事件,此事件可以得到鼠标的相关操作

菜单组件JMenuBar:

用来摆放JMenu组件,JMenuBar的常用方法:

JMenu常用方法:

JMenuItem的常用方法:

JFileChooser类的常用方法:

实验代码:

package 第十一周实验;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

class GGG {
	private String name;
	private String password;

	public GGG(String aa, String ss) {
		this.name = name;
		this.password = password;
	}

	public boolean indate() {
		if ("296738954".equals(name) && "hhl".equals(password)) {
			return true;
		} else {
			return false;
		}

	}
}

class GG {
	JFrame gg = new JFrame("QQ");
	private JLabel aa = new JLabel("账号名称:");
	private JLabel ss = new JLabel("账号密码:");
	private JLabel infoLab = new JLabel("用户登入系统");
	private JTextField ff = new JTextField();
	private JPasswordField dd = new JPasswordField();
	private JButton cc = new JButton("登入");
	private JButton ww = new JButton("重置");

	public GG() {
		Font fnt = new Font("Serif", Font.BOLD, 12);
		infoLab.setFont(fnt);
		ww.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (e.getSource() == ww) {
					JOptionPane.showMessageDialog(null, "账号或密码错误,请重新登入");
					ff.setText("");

					dd.setText("");

					infoLab.setText("用户登入系统");
				}

			}

		});
		cc.addActionListener((ActionListener) new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				if (arg0.getSource() == cc) { // 判断触发源是否登入按钮
					String fff = new String(ff.getText()); // 得到输入的用户名
					String ddd = new String(dd.getText()); // 得到输入的密码
					GGG log = new GGG(fff, ddd); // 实例化GGG对象,传入输入的用户名和密码
					if (log.indate()) {
						JOptionPane.showMessageDialog(null, "登入成功,欢迎光临");
						infoLab.setText("登入成功,欢迎光临");
					} else {
						ff.setText("");

						dd.setText("");
						JOptionPane.showMessageDialog(null, "账号或密码错误,请重新登入");
						infoLab.setText("账号密码错误,请重新登入");
					}
				}

			}
		});
		gg.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent arg0) {
				System.exit(1);
			}
		});

		gg.setLayout(null);
		infoLab.setBounds(120, 220, 200, 20);
		cc.setBounds(100, 180, 80, 20);
		ww.setBounds(190, 180, 80, 20);
		aa.setBounds(100, 100, 80, 20);
		ss.setBounds(100, 140, 80, 20);
		ff.setBounds(190, 100, 100, 20);
		dd.setBounds(190, 140, 100, 20);
		gg.setLayout(null);
		gg.add(cc);
		gg.add(infoLab);
		gg.add(ww);
		gg.add(aa);
		gg.add(ss);
		gg.add(ff);
		gg.add(dd);
		gg.setSize(400, 300);
		gg.setLocation(300, 100);
		gg.setVisible(true);
	}
}

public class wenbenk {
	public static void main(String agrs[]) {

		new GG();

	}
}

用来实现登入窗口: