键盘事件及监听处理
在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();
}
}
用来实现登入窗口: