用Java创建一个学生成绩管理系统登陆界面(初级)

目录


任务与要求

使用eclipse.exe创建一个登录界面,如图1所示,当用户名输入“lili”,密码输入“123456”后,弹出主菜单窗体,如图2(a)所示。鼠标箭头在主菜单窗体点“操作菜单”会弹出操作子菜单窗体,如图2(b)所示。鼠标箭头在主菜单窗体点“关于”会弹出关于子菜单窗体,如图2(c)所示。当输入用户名或密码错误时,会弹出错误提示对话框,如图3所示。

要求:

  • 需有窗体;
  • 共7个组件;
  • 用户名和密码正确时,弹出窗口,如图2(a);
  • 用户名和密码错误时,弹出错误提示对话框,如图3所示;
  • 完成图2(b)(c)

 

图1(a)登录窗体

 

图2(a)主菜单窗体

 

图2(b)操作子菜单窗体

 

图2(c)关于子菜单窗体

 

图3 错误提示对话框

代码部分

部分代码:

创建一个“登录”类,代码如下

protected static final String ActionEvent = null;
// 创建一个“登录”类,并继承JFrame
	// 声明窗体中的组件
	private JPanel contentPane;
	private JTextField tName;
	private JPasswordField passwordField;
	private JLabel lblBanner;
	private Container LoginMenu;
	private Container menubar;
	private Component HelpMenu;
	private Frame frame;
	private Container content;

主方法,代码如下。

public static void main(String[] args) {
		Login frame = new Login(); // 创建Login对象
		frame.setVisible(true); // 使frame可视
	}

创建JFrame窗体,代码如下

public Login() { // Login的构造方法
		setResizable(false); // 不可改变窗体大小
		
		setTitle("学生成绩管理系统V1.0"); // 设置窗体题目
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭的方式
		setBounds(100, 100, 406, 189); // 设置窗体大小
		/**
		 * 创建JPanel面板contentPane置于JFrame窗体中,并设置面板的边距和布局
		 */
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		/**
		 * 创建标签lblName置于面板contentPane中,设置标签的大小以及标签中字体的内容、样式
		 */
		JLabel lblName = new JLabel("用户名:");
		lblName.setFont(new Font("黑体", Font.PLAIN, 16));
		lblName.setBounds(15, 14, 64, 23);
		contentPane.add(lblName);
		/**
		 * 创建文本框tName置于面板contentPane中,设置文本框的大小
		 */
		tName = new JTextField();
		tName.setBounds(80, 14, 156, 23);
		contentPane.add(tName);
		tName.setColumns(10);
		
		/**
		 * 创建标签lblPwd置于面板contentPane中,设置标签的大小以及标签中字体的内容、样式
		 */
		JLabel lb = new JLabel("用户登陆系统");
		lb.setHorizontalAlignment(SwingConstants.RIGHT);
		lb.setFont(new Font("楷体", Font.ITALIC, 25));
		lb.setBounds(15, 95, 160, 23);
		contentPane.add(lb);
		/**
		 * 创建标签lblPwd置于面板contentPane中,设置标签的大小以及标签中字体的内容、样式
		 */
		JLabel lblPwd = new JLabel("密 码:");
		lblPwd.setHorizontalAlignment(SwingConstants.RIGHT);
		lblPwd.setFont(new Font("黑体", Font.PLAIN, 16));
		lblPwd.setBounds(15, 40, 64, 23);
		contentPane.add(lblPwd);
		/**
		 * 创建密码框置于面板contentPane中,设置密码框的大小
		 */
		passwordField = new JPasswordField();
		passwordField.setBounds(80,40, 156, 23);
		contentPane.add(passwordField);
		/**
		 * 创建按钮btnLogin置于面板contentPane中,设置按钮的大小以及按钮中字体的内容、样式
		 */
		JButton btnLogin = new JButton("登 录");
		btnLogin.addActionListener(new ActionListener() { // 添加动作监听的事件
			@Override
			public void actionPerformed(ActionEvent e) { // 发生操作时
				if (tName.getText().equals("lili") && passwordField.getText().equals("123456")) { // “登陆成功”的条件
					new qqq();     //调用登陆成功后的窗口
					//JOptionPane.showMessageDialog(null, "登录成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 弹出框:“登陆成功!”
				} else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框为空时
					JOptionPane.showMessageDialog(null, "用户名或密码不能为空!", "Warning", JOptionPane.WARNING_MESSAGE); // 弹出框:“用户名或密码不能为空!”
				} else { // 以上条件都不满足的时候
					JOptionPane.showMessageDialog(null, "用户名或密码错误!", "Error", JOptionPane.ERROR_MESSAGE); // 弹出框:“用户名或密码错误!”
				}
			}
			public void init(JFrame frame, int width, int height) {
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(width, height);
		frame.setLocation(200, 200);
		frame.setVisible(true);
	}
		});
		btnLogin.setFont(new Font("黑体", Font.PLAIN, 16));//字体设置
		btnLogin.setBounds(240, 14, 100, 23);
		contentPane.add(btnLogin);
		
		/**
		 * 创建标签bt置于面板contentPane中,设置标签的大小并向标签中添加图标
		 */
		JButton bt = new JButton("重 置");
		bt.setFont(new Font("黑体", Font.PLAIN, 16));
		bt.setBounds(240, 40, 100, 23);
		contentPane.add(bt);
			}

登录成功后,弹出的窗体,代码如下

public class qqq {              //创建类,登录后弹出的窗口

	JFrame frame = new JFrame();// 创建JFrame对象
	Container content = frame.getContentPane();
	JMenuBar menubar = new JMenuBar();
	JMenu LoginMenu = new JMenu("操作菜单");
	JMenu HelpMenu = new JMenu("关于");
	public qqq(){
	JMenuItem userLoginMenu= new JMenuItem("录入学生成绩");
	JMenuItem userLoginMenu1= new JMenuItem("删除学生成绩");
	JMenuItem userLoginMenu2= new JMenuItem("修改学生成绩");
	JMenuItem userLoginMenu3= new JMenuItem("查询学生成绩");

	JMenuItem user= new JMenuItem("关于本软件");
	JMenuItem user1= new JMenuItem("帮助");
	JMenuItem exitLoginMenu= new JMenuItem("退出");

	LoginMenu.add(userLoginMenu);
	LoginMenu.add(userLoginMenu1);
	LoginMenu.add(userLoginMenu2);
	LoginMenu.add(userLoginMenu3);
	HelpMenu.add(user);
	HelpMenu.add(user1);
	LoginMenu.add(exitLoginMenu);
	menubar.add(LoginMenu);
	menubar.add(HelpMenu);

	contentPane = new JPanel();
	contentPane.setBackground(Color.WHITE);
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(null);
	
	frame.setTitle("学生成绩管理系统V1.0");
	content.add(menubar,BorderLayout.NORTH);
	frame.setBounds(450, 200, 400, 200);
	frame.setVisible(true);//使frame可视
		}
	}
}

完整代码:

完整代码如下


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import as.LoginActionListener;

import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

import java.awt.Font;
import java.awt.Frame;

import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;


public class Login extends JFrame { protected static final String ActionEvent = null;
// 创建一个“登录”类,并继承JFrame
	// 声明窗体中的组件
	private JPanel contentPane;
	private JTextField tName;
	private JPasswordField passwordField;
	private JLabel lblBanner;
	private Container LoginMenu;
	private Container menubar;
	private Component HelpMenu;
	private Frame frame;
	private Container content;
	
	/**
	 * 主方法
	 */
	public static void main(String[] args) {
		Login frame = new Login(); // 创建Login对象
		frame.setVisible(true); // 使frame可视
	}
	/**
	 * 创建JFrame窗体
	 */
	public Login() { // Login的构造方法
		setResizable(false); // 不可改变窗体大小
		
		setTitle("学生成绩管理系统V1.0"); // 设置窗体题目
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭的方式
		setBounds(100, 100, 406, 189); // 设置窗体大小
		/**
		 * 创建JPanel面板contentPane置于JFrame窗体中,并设置面板的边距和布局
		 */
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		/**
		 * 创建标签lblName置于面板contentPane中,设置标签的大小以及标签中字体的内容、样式
		 */
		JLabel lblName = new JLabel("用户名:");
		lblName.setFont(new Font("黑体", Font.PLAIN, 16));
		lblName.setBounds(15, 14, 64, 23);
		contentPane.add(lblName);
		/**
		 * 创建文本框tName置于面板contentPane中,设置文本框的大小
		 */
		tName = new JTextField();
		tName.setBounds(80, 14, 156, 23);
		contentPane.add(tName);
		tName.setColumns(10);
		
		/**
		 * 创建标签lblPwd置于面板contentPane中,设置标签的大小以及标签中字体的内容、样式
		 */
		JLabel lb = new JLabel("用户登陆系统");
		lb.setHorizontalAlignment(SwingConstants.RIGHT);
		lb.setFont(new Font("楷体", Font.ITALIC, 25));
		lb.setBounds(15, 95, 160, 23);
		contentPane.add(lb);
		/**
		 * 创建标签lblPwd置于面板contentPane中,设置标签的大小以及标签中字体的内容、样式
		 */
		JLabel lblPwd = new JLabel("密 码:");
		lblPwd.setHorizontalAlignment(SwingConstants.RIGHT);
		lblPwd.setFont(new Font("黑体", Font.PLAIN, 16));
		lblPwd.setBounds(15, 40, 64, 23);
		contentPane.add(lblPwd);
		/**
		 * 创建密码框置于面板contentPane中,设置密码框的大小
		 */
		passwordField = new JPasswordField();
		passwordField.setBounds(80,40, 156, 23);
		contentPane.add(passwordField);
		/**
		 * 创建按钮btnLogin置于面板contentPane中,设置按钮的大小以及按钮中字体的内容、样式
		 */
		JButton btnLogin = new JButton("登 录");
		btnLogin.addActionListener(new ActionListener() { // 添加动作监听的事件
			@Override
			public void actionPerformed(ActionEvent e) { // 发生操作时
				if (tName.getText().equals("lili") && passwordField.getText().equals("123456")) { // “登陆成功”的条件
					new qqq();     //调用登陆成功后的窗口
					//JOptionPane.showMessageDialog(null, "登录成功!", "Success", JOptionPane.INFORMATION_MESSAGE); // 弹出框:“登陆成功!”
				} else if (tName.getText().equals("") || passwordField.getText().equals("")) { // 文本框为空时
					JOptionPane.showMessageDialog(null, "用户名或密码不能为空!", "Warning", JOptionPane.WARNING_MESSAGE); // 弹出框:“用户名或密码不能为空!”
				} else { // 以上条件都不满足的时候
					JOptionPane.showMessageDialog(null, "用户名或密码错误!", "Error", JOptionPane.ERROR_MESSAGE); // 弹出框:“用户名或密码错误!”
				}
			}
			public void init(JFrame frame, int width, int height) {
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(width, height);
		frame.setLocation(200, 200);
		frame.setVisible(true);
	}
		});
		btnLogin.setFont(new Font("黑体", Font.PLAIN, 16));//字体设置
		btnLogin.setBounds(240, 14, 100, 23);
		contentPane.add(btnLogin);
		
		/**
		 * 创建标签bt置于面板contentPane中,设置标签的大小并向标签中添加图标
		 */
		JButton bt = new JButton("重 置");
		bt.setFont(new Font("黑体", Font.PLAIN, 16));
		bt.setBounds(240, 40, 100, 23);
		contentPane.add(bt);
			}
public class qqq {              //创建类,登录后弹出的窗口

	JFrame frame = new JFrame();// 创建JFrame对象
	Container content = frame.getContentPane();
	JMenuBar menubar = new JMenuBar();
	JMenu LoginMenu = new JMenu("操作菜单");
	JMenu HelpMenu = new JMenu("关于");
	public qqq(){
	JMenuItem userLoginMenu= new JMenuItem("录入学生成绩");
	JMenuItem userLoginMenu1= new JMenuItem("删除学生成绩");
	JMenuItem userLoginMenu2= new JMenuItem("修改学生成绩");
	JMenuItem userLoginMenu3= new JMenuItem("查询学生成绩");

	JMenuItem user= new JMenuItem("关于本软件");
	JMenuItem user1= new JMenuItem("帮助");
	JMenuItem exitLoginMenu= new JMenuItem("退出");

	LoginMenu.add(userLoginMenu);
	LoginMenu.add(userLoginMenu1);
	LoginMenu.add(userLoginMenu2);
	LoginMenu.add(userLoginMenu3);
	HelpMenu.add(user);
	HelpMenu.add(user1);
	LoginMenu.add(exitLoginMenu);
	menubar.add(LoginMenu);
	menubar.add(HelpMenu);

	contentPane = new JPanel();
	contentPane.setBackground(Color.WHITE);
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(null);
	
	frame.setTitle("学生成绩管理系统V1.0");
	content.add(menubar,BorderLayout.NORTH);
	frame.setBounds(450, 200, 400, 200);
	frame.setVisible(true);//使frame可视
		}
	}
}
	

  • 16
    点赞
  • 267
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值