如何让自己的JAVA学生管理系统作业脱颖而出?可视化!

这篇博客分享了如何在JAVA学生管理系统作业中通过可视化技术脱颖而出。作者提供了学习资源和实现登录界面、主菜单、学生信息输出等功能的思路。通过JTable展示数据,结合冒泡排序实现成绩和学院的排序功能,并介绍了搜索查询、修改学生信息的方法。代码示例和关键步骤被详细讲解,适合初学者参考。
摘要由CSDN通过智能技术生成

就这?
源代码链接:https://download.csdn.net/download/weixin_46840974/12546310

当你的同学还在DOS界面苦心挣扎的时候,脱颖而出的做法就是让你的程序“可视化”。
那到底要用到来实现?
就我个人而言,如果要完成一个可视化窗口,那么就需要寻找一个简单的窗体实现的代码借此学习。因此我找到了这个网站(https://segmentfault.com/a/1190000009308776)并学习。
那么我们可以得到这样一个思路:想要完成一个大项目,那么就需要懂得如何学习每个小功能。
以下就是我所用到的一些网址整理,免去大家花费时间。希望对大家有帮助。

创建表格JTable(用来输出学生信息):
	https://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data
替换左上角图标:
	https://blog.csdn.net/qxhly/article/details/71541248
登录界面的文字(JTable)、填空格(JTextField)、按钮功能(JButton):
	http://c.biancheng.net/view/1206.html(swing功能首页,具体功能可以在左栏找)
	https://www.cnblogs.com/biehongli/p/5751149.html

此外还有我所用到但并不是很重要的小功能:

关于JTable所用到的Objcet的一些问题:
	https://bbs.csdn.net/topics/350210032
通过JButton关闭应用程序:
	https://blog.csdn.net/oojustin/article/details/84294603
限制文本域输写:(防止暴力破解密码)
	https://zhidao.baidu.com/question/936778205491188492.html
更改并美化JButton:
	https://blog.csdn.net/pinkriverside/article/details/71104575
将窗体置顶:
	https://blog.csdn.net/friendan/article/details/7036394
删除窗体:
	https://blog.csdn.net/sky15737/article/details/50850315
同一个类下创建两个窗口:
	https://blog.csdn.net/zhangzhikang_zzk/article/details/51416878

同时在我自学的过程中也遇到了许多问题:

读取学生时的编码问题:
	https://blog.csdn.net/zhu1371884551/article/details/103713306?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
	

总结下来上面的三个功能应该是首要功能,这样就可一实现一个登陆界面

@[TOC]登录界面的实现
登录界面

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.Random;


public class window {
   
    public static void main(String[] args) {
   
        new TestDemo("学生管理系统");


    }
}

class TestDemo extends JFrame {
   

    private final String userName = "123";
    private final String passWord = "123";

    private int windowWidth;
    private int windowHeight;
    private int screenSizeWidth;
    private int screenSizeHeight;

    public TestDemo(String title) {
   
        super(title);
        super.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setSize(256,300);
        this.setLayout(null);
        this.setResizable(false);
        setWindow();
        this.setVisible(true);

    }
    public void setWindow() {
   

        //ImageIcon icon = new ImageIcon("logo.png");
        //this.setIconImage(icon.getImage());
        ImageIcon icon = new ImageIcon("pic\\logo.png");
        this.setIconImage(icon.getImage());

        Dimension screenSize = getToolkit().getDefaultToolkit().getScreenSize();
        screenSizeWidth = (int)screenSize.getWidth();
        screenSizeHeight= (int)screenSize.getHeight();
        windowWidth = this.getWidth();
        windowHeight= this.getHeight();
        this.setBounds((int)(screenSizeWidth-windowWidth)/2, (int)(screenSizeHeight-windowHeight)/2,windowWidth,windowHeight);

        JLabel userName_label = new JLabel("姓名:");
        JLabel passWord_label = new JLabel("密码:");
        JLabel TipsInfo = new JLabel("请输入账号和密码:");
        JLabel capStr = new JLabel("");
        final JTextField user_field = new JTextField();
        final JTextField capStr_field = new JTextField();
        final JPasswordField pass_field = new JPasswordField();
        JButton login_btn = new JButton("登录");
        JButton regis_btn = new JButton("咨询");

        TipsInfo.setBounds(15,0,300,50);
        userName_label.setBounds(30, 50, 100, 50);
        passWord_label.setBounds(30,80,100,50);
        user_field.setBounds(30+50,50+15,125,25);
        pass_field.setBounds(30+50,80+15,125,25);
        login_btn.setBounds(125,180,80,40);
        regis_btn.setBounds(25,180,80,40);

        this.add(TipsInfo);
        this.add(userName_label);
        this.add(passWord_label);
        this.add(user_field);
        this.add(pass_field);
        this.add(login_btn);
        this.add(regis_btn);

        regis_btn.addActionListener(new ActionListener() {
   
            @Override
            public void actionPerformed(ActionEvent e) {
   
                JOptionPane.showMessageDialog(null,"如需帮助请联系作者"+"\n"+"LC","帮助",JOptionPane.QUESTION_MESSAGE);
            }
        });

        login_btn.addActionListener(new ActionListener() {
   
            int Hub;
            int readHuB;
            @Override
            public void actionPerformed(ActionEvent e) {
   
                //if(Hub == 0) -->  ~~~~~~~此处验证码先行~~~~~~~

                try {
   
                    if(user_field.getText().equals(userName) && pass_field.getText().equals(passWord)){
                     
 //此处调用下一个窗口并关闭当前窗口
     			setVisible(false);
                        systemMenu systemmenu = new systemMenu();
                        new Menu("主菜单");

                        //System.txt --> 0
                        Writer wr = new FileWriter("dataFiles\\System.txt");
                        wr.write(String.valueOf(Hub));
                        wr.close();

                    }else{
   
                        readTxt readHub = new readTxt();
                        readHuB = readHub.hub;

                        if (readHuB>50){
   
                            JOptionPane.showMessageDialog(null, "登陆失败,请检查账号和密码是否错误\n剩余机会:(0/3)请联系管理员", "Login", JOptionPane.ERROR_MESSAGE);
                            user_field.setEnabled(false);           //阻止输入
                        }else {
   

                            Hub++;  
                            File writeHub = new File("dataFiles\\System.txt");
                            BufferedWriter out = new BufferedWriter(new FileWriter(writeHub));
                            out.write(String.valueOf(Hub));
                            out.flush();
                            out.close();

                            System.out.println(readHuB);

                            switch (Hub) {
   
                                case 0:
                                    break;
                                case 1:
                                    JOptionPane.showMessageDialog(null, "登陆失败,请检查账号和密码是否错误\n剩余机会:(3/3)", "Login", JOptionPane.ERROR_MESSAGE);
                                    break;
                                case 2:
                                    JOptionPane.showMessageDialog(null, "登陆失败,请检查账号和密码是否错误\n剩余机会:(2/3)", "Login", JOptionPane.ERROR_MESSAGE);
                                    break;
                                case 3:
                                    JOptionPane.showMessageDialog(null, "登陆失败,请检查账号和密码是否错误\n剩余机会:(1/3)", "Login", JOptionPane.ERROR_MESSAGE);
                                    break;
                                default:
                                    JOptionPane.showMessageDialog(null, "登陆失败,请检查账号和密码是否错误\n剩余机会:(0/3)请联系管理员", "Login", JOptionPane.ERROR_MESSAGE);
                                    break;
                            }
                            user_field.setText("");
                            pass_field.setText("");
                        }
                    }
                } catch (IOException ioException) {
   
                    ioException.printStackTrace();
                }
            }
        });
    }
}

@[T

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值