学生管理系统

eclipse写学生管理系统

1、添加背景图片

        ImageIcon image = new ImageIcon(this.getClass().getResource("csu.jpg"));
        JLabel imageLabel = new JLabel(image);
        //imageLabel.add(image);
        this.add(imageLabel);

注意被注销的那块代码是错误的,应该在imageLabel这个标签组件被创建的时候就把image(ImageIcon类型)传入到imageLabel中。

2、图片的边距
这里写图片描述
将图片添加显示之后,会发现会有一定的边距,如图箭头所指的地方。
如何去消除这种边距呢?

labImage.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());

上面这行代码就可以解决。

此外我们设置的整个窗体大小是600*500的,截图也是600乘以500的,可以发现窗体的大小是包括窗体的边框的。

3、如何获取按钮上的文字
e.getActionCommend()

4、匿名内部类的使用

butAdd.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                String number = textNumber.getText();
                String name = textName.getText();
                String age = textAge.getText();
                String score = textScore.getText();

                Student stu = new Student();
                stu.setNumber(number);
                stu.setName(name);
                stu.setAge(Integer.parseInt(age));
                stu.setScore(Integer.parseInt(score));

                MainUI.sm.add(stu);
                System.out.println(MainUI.sm.size());

                // 调用移除添加的JPanel,显示结果的JPanel
                bl.addORShow();
            }

        });

使用是要注意将变量设置为final

        final JTextField textNumber = new JTextField(18);
        final JTextField textName = new JTextField(18);
        final JTextField textAge = new JTextField(18);
        final JTextField textScore = new JTextField(18);

5、整体思路
无界面的学生管理系统的实现

Main

函数入口
在主函数中创建学生管理类、和学生类
实现添加、删除、修改、查询的过程

StudentManager
通过构造函数创建学生类的数组
定义各个方法(添加、删除、修改、查询)的具体操作

Student
创建学号、姓名、年龄、成绩的私有成员变量
以及他们的set、get方法


有界面的学生管理系统的实现

界面类型:在同一个窗体上进行跳转

MainUI____________________________________________________________________________________________
主界面(继承自窗体)
在其上显示westPanel和centerPanel

westPanel显示4个按钮分别对应“添加学生”、“删除学生”、“修改学生”、“查询学生”,
并给它们加上监听(注意:因为添加学生的界面要显示在centerPanel中,所以监听要讲centerPanel传入)

ButtonListenr_____________________________________________________________________________________
点击添加学生时
1、将centerPanel已经显示的画面清空
centerPanel.removeAll();
2、显示添加学生的界面,界面如下:
学号:****
姓名:****
年龄:****
成绩:****
确认 返回
AddStudentUI______________________________________________________________________________________
如何实现界面的显示?可以定义一个AddStudentUI类,创建一个对应的对象,并创建一个对应的initUI方法
注意initUI方法要在对象创建的时候自动执行(即将initUI()放在AddStudentUI类的构造函数中)。

如何实现确认之后提交信息
给initUI()显示的界面 中的确认Button加监听(可以使用匿名内部类的方式,但要注意将initUI中使用的变量

用final关键字定义)

用getText()传入学号、姓名、年龄、成绩之后显示添加学生的信息的界面
注意:将字符串型的数据转化为int型//Integer.parseInt(字符串型数据)

用学生管理类将新添加的学生加到内存中//要定义一个全局的StudentManager类去使用

ButtonListener.addORShow()______________________________________________________________
调用ButtonListener的方法addORShow()去显示这些信息,步骤:
1、清空已经在centerPanel上显示的内容(这也是AddStudentUI()要传入ButtonListener对象的原因,因为

ButtonListener对象传入了centerPanel,通过ButtonListener对象可以修改centerPanel上显示的内容)
代码:centerPanel.removeAll();
2、创建ShowStudentUI对象(initUI方法要在对象创建的时候自动执行)
ShowStudentUI对象.setBounds(0,0,width,height);//消除边距,image.getIconWidth()可以获取宽度
centerPanel.add(ShowStudentUI对象);//
再重绘centerPanel及其组件
//centerPanel.repaint();
//centerPanel.paintComponents(centerPanel.getGraphics());

ShowStudentUI_____________________________________________________________________________________
关于ShowStudentUI的内容
在一个文本框(JScrollPane类)中输出所有的学生的信息(textShow类,可用append方法添加内容)
注意:要获取已经存放的学生数量、每个学生的信息,就要用到学生管理类的size()、get()

bug & Question

1、中途eclipse的复制行的快捷键用不了了,原因是开了QQ音乐,快捷键冲突了。

2、边距用labImage.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());还是消除不了
设置centerPanel布局为null
//centerPanel.setLayout(null);

3、当不输入、或者输入的数据类型不一致会导致程序出错

4、显示不出已添加的学生的信息
//JScrollPane jsPanel = new JScrollPane(textArea);
//未写入参数textArea

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值