使用eclipse设计学生管理系统

                              使用eclipse设计学生管理系统

1.下载安装eclipse,建立一个java工程(File>>New>>Java Project>>Project Name: StudentManager)

2.在src中建立一个view包,来保存视图工程(src右击>>New>>Package>>Name:view)

3.使用可视化设计器和布局工具来创建简单的Windows窗体进行登录页面设计,右击view>>New>>Other>>WindowBuilder>>Swing Design>>JFrame,Next>>Name:loginframe

4.可视化设计登录页面:

1)点击design进入可视化编辑页面:

(关于在eclipse中中文汉字乱码的解决方式   明礼馨德 博客)

2)在Class javax.swing.JFrame 的title中输入该界面名称:学生管理系统

3) 在contentPane>>Layout>>选择GroupLaout,如此我们可以自由进行布局

4)我们需要一个标题,在components中选择JLable来添加一个文本框,在text一栏中输入显示的文本:学生管理系统重复

5)重复上述步骤,我们还需建立三个文本框,分别重命名为:lable lable_1 lable_2内容分别为:  用户名: 密码: 用户类型: ,此时我们会发现一个问题,由于文本的长度不同,所以他们是没有对齐的,非常不美观,所以我们要对他们进行处理,首先我们想到的方法是直接在文本内容中加空格,但是这中方法添加空格非常不稳定,细微上不容易对齐,其次我们会想到回到Source界面,使用十六进制输入汉字,然后在其中添加空格,相对容易但比较麻烦,我们这里采用第三种方法,右对齐,即使签中的文字在标签里面右对齐,JLabel a=new JLabel("用户名",JLabel.RIGHT)然后使用适当的空格进行填充。GBK中一个汉字占2个字节 空格占1个字节 ;UTF-8中一个汉字占3个字节一个空格占1个字节

6)添加两个文本输入框

    在components中选择JTextField,调整合适的大小,建立两个文本输入框,分别重命名为:usernametextField passwordtextField

7)添加组合框

    在components中选择JCombox(组合框 :显示一个可编辑的文本框和下拉列表,用户可以从下拉列表中选择一个或多个值。用户可以直接输入文本到列表的顶部,或者从列表中选择一个或多个现成的值。),调整适当大小,重命名为:usertypecomboBox(在这里解释一下重命名的作用,这是为了方便我们后期再Source界面进行调试的时候,方便快捷的知道该模块的代码是那一部分的,防止把用户名的输入框当成密码的输入框这种类似的错误发生),在model中输入系统管理员 换行 教师 换行 学生 换行 三个选择 ,注意在后期我们会建立枚举类来替代这三个选择,此时输入最主要是为了在source界面中产生相应的代码

8)添加两个按钮

    在components中选择JButton,重命名为:loginbutton  resetbutton , text中分别输入 登录  重置

如此一个简易的登录页面算完成了:

5.设计主页面

过程与设计登录页面过程基本相似

1)新建mainframe,进入design页面

2)调整适合的框图大小

3)添加菜单栏

    在Menu中选择JMenuBar

4)在菜单栏中添加两个菜单

    在JMenuBar中添加两个JMenu,分别重命名为:menu  menu_1,text中分别输入系统设置,班级管理

5)添加菜单项目

    在JMenu中添加JMenuItem,此次我们需要在系统设置里添加两选项:修改密码 退出系统 在班级管理中添加一个选项:添加班级,然后依次进行重命名:menuItem menuItem_1 menuItem_2,然后再text中添加文字描述

6)添加虚拟界面

    在Container中添加JDesktopPane(用于创建多文档界面或虚拟桌面的容器)。为了方便区分,我们给它加上背景颜色

6.设计修改密码页面

1)新建editpasswordframe,进入design页面

new>>others>>JInternalFrame

2)调整适合的框图大小

3)添加五个文本框,分别为:   当前用户:     原密码: 新密码: 确认密码:  空白文本框(在当前用户:后面)分别重命名为:label_3   label    label_1    label_2    currentUserLabel

4)添加三个文本输入框,分别重命名为:oldpwdtextField   newpwdtextField  confirmpwdField按钮

5)添加两个按钮,分别重命名为:submitbutton resetbutton  ,在text中分别输入 确定  重置

到目前为止,三个可视化窗口的设计算是基本完成了

7.将登陆页面窗口置于屏幕中央

    显然,我们每次首先要运行的是登录页面,那么在运行时我们就会发现,点击运行后,该弹窗显示在屏幕左上角,我们为了视觉上的舒适感通常会把它拖到屏幕中央,怎样默认让它显示在屏幕中央呢?

我们只需在loginframe.java的public loginframe() {     (setContentPane(contentPane);下放)   中添加一行代码

setLocationRelativeTo(null);//窗口将置于屏幕的中央

就能实现这个功能了。

(public void setLocationRelativeTo(Component c)  设置窗口相对于指定组件的位置。 如果组件当前未显示或者 c 为 null,则此窗口将置于屏幕的中央。  中点可以使用 GraphicsEnvironment.getCenterPoint 确定    披Zhe羊皮De狼 博客)

8.登录页面功能完善

  登录按钮和重置按钮的实现

    

        JButton loginbutton = new JButton("登录");
		loginbutton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				login();//登录按钮实现的方法,具体实现在下面
			}
		});
		
		JButton resetbutton = new JButton("重置");
		resetbutton.addActionListener(new ActionListener() {//重置按钮的实现
			public void actionPerformed(ActionEvent arg0) {
				usernametextField.setText("");
				passwordtextField.setText("");
				usertypecomboBox.setSelectedIndex(0);
			}
		});

        
        ......


        protected void login() {     //我们把该函数放在整体代码最后来实现整体代码的美观
		String name=usernametextField.getText().toString();
		String password=passwordtextField.getText().toString();
		usertype selectItem=(usertype) usertypecomboBox.getSelectedItem();
		if(stringutil.isEmpty(name)){
			JOptionPane.showMessageDialog(this, "用户名不能为空");	//弹出提示性对话框
			return;
		}
		if(stringutil.isEmpty(password)){
			JOptionPane.showMessageDialog(this, "密码不能为空");	
			return;
		}
		Admin admin=null;
		if("系统管理员".equals(selectItem.getName())){
			Admindao admindao=new Admindao();
			Admin admin2=new Admin();
			admin2.setName(name);
			admin2.setPassword(password);
			admin=admindao.login(admin2);
			if(admin==null){
				JOptionPane.showMessageDialog(this, "用户名或者密码错误");
				return;
			}
			this.dispose();//当前登录界面关闭
		    new mainframe(selectItem,admin).setVisible(true);//主页面显示
			
		}

此时会出现许多小问题,不要慌,我们去逐个破解,首先是

usertype selectItem=(usertype) usertypecomboBox.getSelectedItem();

这是因为我们把 usertypecomboBox定义在了public loginframe()中,而在protected void login()不包含它的定义所导致的,因此我们只需要把它定义在最外层public class loginframe extends JFrame  中就可以了,同时记得修改public loginframe()中的定义,避免重复定义。

public class loginframe extends JFrame {

	private JPanel contentPane;
	private JTextField usernametextField;
	private JTextField passwordtextField;
	private JComboBox usertypecomboBox ;    //

    ...

        public loginframe() {

        ...

        	    usertypecomboBox = new JComboBox();
		usertypecomboBox.setModel(new DefaultComboBoxModel(new String[] {"系统管理员", "教师", "学生"}));
		


     

接下来的问题也主要是元素没有定义,这是因为本人发布为最终代码,其中部分优化加入了其他的包和元素定义,在这里我带领大家一一加入。

 1)在原有view包的基础上建立四个包分别为  dao(存储于数据库有关的代码) images(存放图片) model(存放枚举类等)util(存放连接和判断条件)

2)在model中新建枚举类usertype    (如何自动生成代码模板问题)

model>>new>>Enum

package model;

public enum usertype {
	ADMIN("系统管理员",0),TEACHER("教师",1),STUDENT("学生",2);
	private String name;
	private int index;
	private usertype(String name,int index){
		this.name = name;
		this.index = index;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getIndex() {
		return index;
	}
  • 63
    点赞
  • 437
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值