import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class Main{
public static void main (String []args){
AFrame f = new AFrame("学生信息管理系统");
}
}
class AFrame extends JFrame {
JButton b1;
JButton b2;
JTextField t1;
JTextField t2;
public AFrame(String title) {
super(title);
//调用父类JFrame的构造函数,将指定的title作为窗口的标题。
this.setLayout(null);
//设置布局管理器为null,即使用自定义的布局方式。
Panel p = new Panel();
b1 = new JButton("登陆");
//创建一个按钮对象b1,按钮上显示文本为"登陆"。
b2 = new JButton("取消");
//创建一个按钮对象b2,按钮上显示文本为"取消"。
t1 = new JTextField(25);
//创建一个文本框对象t1,宽度为25个字符。
t1.setFont(new Font("宋体", Font.BOLD, 25));
//设置文本框的字体为宋体,加粗,大小为25。
t2 = new JPasswordField(25);
//创建一个密码框对象t2,宽度为25个字符。
t2.setFont(new Font("宋体", Font.BOLD, 25));
//设置密码框的字体为宋体,加粗,大小为25。
JLabel nameLabel = new JLabel("用户名");
//创建一个标签对象nameLabel,显示文本为"用户名"。
nameLabel.setFont(new Font("宋体", Font.BOLD, 25));
//设置标签的字体为宋体,加粗,大小为25。
nameLabel.setHorizontalAlignment(JTextField.CENTER);
//设置标签的文本居中对齐。
JLabel pwdLabel = new JLabel("密码");
//创建一个标签对象pwdLabel,显示文本为"密码"。
pwdLabel.setFont(new Font("宋体", Font.BOLD, 25));
//设置标签的字体为宋体,加粗,大小为25。
pwdLabel.setHorizontalAlignment(JTextField.CENTER);
//设置标签的文本居中对齐
//所谓居中对齐实质就是用户名和密码居中对齐
this.setBounds(300, 300, 2000, 1000);
//设置窗口的位置和大小,横坐标和纵坐标均为300,窗口的长为1000,宽为500。
this.add(nameLabel);
//将nameLabel标签添加到窗口中。
this.add(t1);
//将t1文本框添加到窗口中。
this.add(pwdLabel);
//将pwdLabel标签添加到窗口中。
this.add(t2);
//将t2密码框添加到窗口中。
this.add(b1);
//将b1按钮添加到窗口中。
this.add(b2);
//将b2按钮添加到窗口中。
nameLabel.setBounds(100, 100, 200, 50);
//设置nameLabel标签在窗口中的位置和大小,参数依次为左上角的横坐标、纵坐标、宽度和高度。
//用户名
pwdLabel.setBounds(100, 200, 200, 50);
//设置pwdLabel标签在窗口中的位置和大小,参数依次为左上角的横坐标、纵坐标、宽度和高度。
//密码
t1.setBounds(600, 100, 200, 50);
//设置t1文本框在窗口中的位置和大小,参数依次为左上角的横坐标、纵坐标、宽度和高度。
//用户名输入文本框
t2.setBounds(600, 200, 200, 50);
//设置t2密码框在窗口中的位置和大小,参数依次为左上角的横坐标、纵坐标、宽度和高度。
//密码输入文本框
b1.setBounds(100, 300, 300, 80);
//设置b1按钮在窗口中的位置和大小,参数依次为左上角的横坐标、纵坐标、宽度和高度。
//b1按钮是登录按钮
b2.setBounds(600, 300, 300, 80);
//设置b2按钮在窗口中的位置和大小,参数依次为左上角的横坐标、纵坐标、宽度和高度。
//b2按钮是取消按钮
b1.addActionListener(new ResponseButton());
//为b1按钮添加一个点击事件的监听器,使用ResponseButton类实现。
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "单击确定退出");
System.exit(0);
}
});
//为b2按钮添加一个点击事件的监听器,使用匿名内部类实现,点击按钮时弹出一个对话框提示确认退出,
// 并调用System.exit(0)退出程序。
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//设置窗口的默认关闭操作为退出程序。
this.setVisible(true);
//设置窗口可见。
getRootPane().setDefaultButton(b1);
//设置窗口的默认按钮为b1按钮,即按下回车键时触发b1按钮的点击事件。
b1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
AFrame2 f1 = new AFrame2("学生信息管理系统-123456");
} else {
System.out.print(t1.getText());
JOptionPane.showMessageDialog(null, "账号或者密码错误", "Error.mxy", JOptionPane.ERROR_MESSAGE);
}
}
});
//为b1按钮添加一个键盘事件的监听器,使用匿名内部类实现。如果按下回车键,则创建一个AFrame2对象表示学生信息管理系统的主界面;
// 否则,打印t1文本框中的文本并显示错误消息提示框。
}
public class ResponseButton implements ActionListener {
public void actionPerformed(ActionEvent e) {
String str = "qc";
//用户名文本
String m = "qc666";
//密码文本
if (t1.getText().equals(str) && t2.getText().equals(m)) {
//使用t1.getText()获取t1文本框中的内容,使用t2.getText()获取t2文本框中的内容。
// 也就是读取用户输入的用户名和密码
AFrame2 f1 = new AFrame2("学生信息管理系统-123456");
} else {
System.out.print(t1.getText());
JOptionPane.showMessageDialog(null, "账号或者密码错误", "Error.mxy", JOptionPane.ERROR_MESSAGE);
}
}
}
class AFrame2 extends JFrame {
JButton b3;
JButton b4;
JButton b5;
JButton b6;
public AFrame2(String title) {
super(title);
//构造函数 AFrame2 接受一个字符串参数 title,用作窗口的标题。
//在构造函数内部,通过调用父类 JFrame 的构造函数并传递 title,初始化窗口的标题。
b3 = new JButton("录入");
b4 = new JButton("查询");
b5 = new JButton("修改");
b6 = new JButton("删除");
this.add(b3);
this.add(b4);
this.add(b5);
this.add(b6);
b3.setBounds(100, 80, 160, 100);
b4.setBounds(100, 290, 160, 100);
b5.setBounds(300, 80, 160, 100);
b6.setBounds(300, 290, 160, 100);
//调整按钮大小和位置
b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
AFrame3 f2 = new AFrame3("学生信息管理系统-录入");
}
});
//为 b3 按钮添加一个动作监听器(ActionListener),并实现其 actionPerformed 方法。
// 当按钮被点击时,会创建一个新的 AFrame3 对象,窗口标题为 "学生信息管理系统-录入"。
b4.addActionListener(new ActionListener() {