JAVA小项目-银行管理系统(图形化界面)1-菜单

注意: 此博客是在程序构建初期开始编写,在编写过程中可能会重写某些不合适的代码,所以某些后面的细节可能在前面代码中未展现,只能说尽力补全,望海涵

之前做了一个没有图形化界面的银行管理系统, 看着很LOW
也学到了swing图形化界面的部分, 就开始做一个图形化的银行管理系统
如果实现顺利的话, 应该会加上数据库的内容,敬请期待

首先我们需要先实现登录界面部分的制作, 可能样例有点丑, 在最后整体构架结束时 在对项目做 具体的审美方面的处理

下面2段代码为无用代码 编写初期的思路确实是这样的, 但是后来推翻了 如果不想看 可以往下翻, 看第三段代码 (真正的菜单类)

1.首先第一步 一个登录界面窗体的实现

由2部分组成
1。输入用户名密码的标签和文本框
2。登录, 重置,注册 3个按钮
我们将用户入用户名部分加入一个面板, 密码部分加入一个面板, 最后按钮部分在加入一个面板
最后添加到窗体中

因为我们需要监听信息所以直接继承了 事件监听类 并做出了 针对登录, 重置,注册3个按钮的监听(虽然登陆后未跳转,注册时未跳转, 因为还没做到), 先看下窗体的构建

先创建一个Login类 实现登录界面
代码解释在代码中
code

package contentcl;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class Login extends JFrame implements ActionListener{

    JButton jb1, jb2, jb3;  //按钮
    JPanel jp1,jp2,jp3, jp4;        //面板
    JTextField jtf;   //文本框
    JLabel jlb1, jlb2, jlb3; //标签
    JPasswordField jpf; //密码框

    String name = "123";   //账号密码
    String pwd = "123"; 

    public Login() {
        // TODO Auto-generated constructor stub
        jb1 = new JButton("登录");
        jb2 = new JButton("重置");
        jb3 = new JButton("注册");
        //设置按钮监听
        jb1.addActionListener(this);
        jb2.addActionListener(this);

        jp1 = new JPanel();  //创建面板
        jp2 = new JPanel();
        jp3 = new JPanel();

        jlb1 = new JLabel("用户名");  //添加标签
        jlb2 = new JLabel("  密  码");

        jtf = new JTextField(10);   //创建文本框和密码框
        jpf = new JPasswordField(10);

        //加入面板中
        jp1.add(jlb1);
        jp1.add(jtf);

        jp2.add(jlb2);
        jp2.add(jpf);

        jp3.add(jb1);
        jp3.add(jb2);
        jp3.add(jb3);

        //将JPane加入JFrame中  
        this.add(jp1);  
        this.add(jp2);  
        this.add(jp3);  

       //设置布局
        this.setTitle("银行管理管理系统");
        this.setLayout(new GridLayout(3,1));
        this.setSize(300, 200);   //设置窗体大小
        this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)  
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);  //设置可关闭

        this.setVisible(true);  //设置可见
        this.setResizable(false);   //设置不可拉伸大小

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if (e.getActionCommand()=="登录")
        {
            login();
        }
        else if(e.getActionCommand()=="重置")  
        {  
             clear();  
        }
        else if(e.getActionCommand()=="注册")
        {
            new Register();  //跳转注册界面
        }
    }
    //清空账号和密码框
    private void clear() {
        // TODO Auto-generated method stub
        jtf.setText("");    //设置为空
        jpf.setText("");  

    }

    //验证登录信息,并做处理
    public void login()
    {
        if (name.equals(jtf.getText())&&pwd.equals(jpf.getText()))
        {
            JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);
            dispose();  //使文原窗体消失
            new OptionsMenu(); //跳转到登录个人信息选项界面

        }
        else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
        {
            JOptionPane.showMessageDialog(null, "账号密码为空,请输入!","消息提示",JOptionPane.WARNING_MESSAGE);
        }
        else if (jtf.getText().isEmpty()) 
        {
            JOptionPane.showMessageDialog(null, "账号为空,请输入!","消息提示",JOptionPane.WARNING_MESSAGE);
        }
        else if (jpf.getText().isEmpty()) 
        {
            JOptionPane.showMessageDialog(null, "密码为空,请输入!","消息提示",JOptionPane.WARNING_MESSAGE);

        }
        else
        {
            JOptionPane.showMessageDialog(null, "账号密码错误请重新输入!","消息提示",JOptionPane.ERROR_MESSAGE);
            clear();  //调用清除函数
        }
    }



}

我没写主函数 因为我有另外写了一个类 有主函数来调用他。

2.实现注册界面的编写

创建一个Register类实现注册账号的功能,我们在事件监听中,点击注册后
调用Register类,实现跳转
和登录界面做法类似, 只写了界面为实现具体功能,为实现信息存储功能,后面讲补全

package contentcl;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Register extends JFrame implements ActionListener{

    JButton jb1, jb2;  //按钮
    JLabel jlb1, jlb2, jlb3,jlb4,jlb5;  //标签
    JTextField jtf1,jtf2,jtf3,jtf4;   //文本框
    JPasswordField jpf; //密码框
    JPanel jp1,jp2,jp3, jp4,jp5,jp6;        //面板

    public Register() {
        // TODO Auto-generated constructor stub
        //按钮
        jb1 = new JButton("确定");
        jb2 = new JButton("重置");
        //设置按钮监听
        jb1.addActionListener(this);
        jb2.addActionListener(this);
        //标签信息

        jlb1 = new JLabel("        账号");
        jlb2 = new JLabel("        姓名");
        jlb3 = new JLabel("        密码");
        jlb4 = new JLabel("重复密码");
        jlb5 = new JLabel("注册信息");
        jlb5.setFont(new   java.awt.Font("Dialog",   1,   20));   //设置字体类型,加粗,大小为20
        //文本信息
        jtf1 = new JTextField(10);
        jtf2 = new JTextField(10);
        jtf3 = new JTextField(10);
        jtf4 = new JTextField(10);

        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();
        jp4 = new JPanel();
        jp5 = new JPanel();
        jp6 = new JPanel();
        //将对应信息加入面板中
        jp1.add(jlb1);
        jp1.add(jtf1);

        jp2.add(jlb2);
        jp2.add(jtf2);

        jp3.add(jlb3);
        jp3.add(jtf3);

        jp4.add(jlb4);
        jp4.add(jtf4);

        jp5.add(jb1);
        jp5.add(jb2);

        jp6.add(jlb5);

        //将JPane加入JFrame中  
        this.add(jp6);  //先加入提示语

        this.add(jp1);  
        this.add(jp2);  
        this.add(jp3); 
        this.add(jp4);
        this.add(jp5);

        //设置布局
        this.setTitle("注册信息");
        this.setLayout(new GridLayout(6, 1));
        this.setSize(300, 300);   //设置窗体大小
        this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)  
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);  //设置仅关闭当前窗口

        this.setVisible(true);  //设置可见
        this.setResizable(false);   //设置不可拉伸大小

    }


    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if (e.getActionCommand()=="确定")
        {
            register();
        }
        else if (e.getActionCommand()=="重置")
        {
            clear();
        }

    }
    //验证注册信息,并做处理
    public void register()
    {
        if (!jtf1.getText().isEmpty()&&!jtf2.getText().isEmpty()&&
                !jtf3.getText().isEmpty()&&!jtf4.getText().isEmpty())
        {
            JOptionPane.showMessageDialog(null,"注册成功!","提示消息",JOptionPane.WARNING_MESSAGE);

        }
        else 
        {
            JOptionPane.showMessageDialog(null, "信息有空缺,请补全!","消息提示",JOptionPane.WARNING_MESSAGE);
        }
    }

    //清空账号和密码框
    private void clear() {
        // TODO Auto-generated method stub
        jtf1.setText("");    //设置为空
        jtf2.setText("");  
        jtf3.setText("");  
        jtf4.setText("");  

    }

}

上面思路推翻, 但是代码还是可以看下学习的 重新整理思路并做了表(重点来了)

上图

这里写图片描述
思路整理了好久 ,接下来任务就是照着这11个类编写。界面略丑,最后大体完成交给做ui的妹子 哈哈哈哈哈

先捋一下 怕你们看不懂代码:

查询, 存款, 取款, 改密,转账,都需要进行登录操作, 所以 我们先进行 进入Login类进行验证操作 , 如果账户存在, 登录成功会进入不同页面 继续操作 。

但是 我们 需要保留登录前的选项, 所以我们再给Login类传了一个String类型的参数, 保留了上一步的操作

最底层的菜单类Menu做完了

package contentcl;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
/**
 * 
 * @author contentcl
 * Menu是一个 菜单类,也是最为底层的一个类
 * 提供各个功能的按钮
 * 
 * 此类未使用布局, 所以使用坐标固定了各个标签和按钮的位置
 *
 */

public class Menu extends JFrame implements ActionListener{

    JButton jb1, jb2, jb3,jb4,jb5,jb6,jb7, jb8;  //创建按钮
    JLabel jlb1, jlb2, jlb3;   //标签
    public Menu() 
    {
        jb1 = new JButton("查询");
        jb2 = new JButton("存款");
        jb3 = new JButton("取款");
        jb4 = new JButton("转账");
        jb5 = new JButton("改密");
        jb6 = new JButton("开户");
        jb7 = new JButton("退卡");
        jb8 = new JButton("挂失");


        jlb1 = new JLabel("知足常乐银行");
        jlb1.setFont(new   java.awt.Font("Dialog",   1,   23)); //设置字体类型, 是否加粗,字号
        jlb2 = new JLabel("欢迎您");
        jlb2.setFont(new   java.awt.Font("Dialog",   1,   20));
        jlb3 = new JLabel("请您选择服务");
        jlb3.setFont(new   java.awt.Font("Dialog",   1,   22));

        jb1.addActionListener(this);   //事件监听
        jb2.addActionListener(this);
        jb3.addActionListener(this);
        jb4.addActionListener(this);
        jb5.addActionListener(this);
        jb6.addActionListener(this);
        jb7.addActionListener(this);
        jb8.addActionListener(this);

        this.setTitle("银行管理管理系统");  //设置窗体标题
        this.setSize(450, 500);         //设置窗体大小
        this.setLocation(400, 200);     //设置位置
        this.setLayout(null);           //设置布局,不采用布局

        //设置按钮的位置和大小
        jb1.setBounds( 0,50,90,60);   
        jb2.setBounds( 0,150,90,60);
        jb3.setBounds( 0,250,90,60);
        jb8.setBounds(0,350,90,60);
        jb4.setBounds( 354,50,90,60);
        jb5.setBounds( 354,150,90,60);
        jb6.setBounds( 354,250,90,60);
        jb7.setBounds(354,350,90,60);

        //设置标签的位置和大小
        jlb1.setBounds(150,120,150,50);
        jlb2.setBounds(190,160,150,50);
        jlb3.setBounds(150,250,150,50);

        this.add(jb1);   //加入窗体
        this.add(jb2);
        this.add(jb3);
        this.add(jb4);
        this.add(jb5);
        this.add(jb6);
        this.add(jb7);
        this.add(jb8);
        this.add(jlb1);
        this.add(jlb2);
        this.add(jlb3);

        this.setDefaultCloseOperation(EXIT_ON_CLOSE);  //设置可关闭

        this.setVisible(true);  //设置可见
        this.setResizable(false);   //设置不可拉伸大小
    }


    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if (e.getActionCommand()=="查询")
        {
            //String order = e.getActionCommand();
            new Login(e.getActionCommand());
        }
        else if (e.getActionCommand()=="存款")
        {
            new Login(e.getActionCommand());
        }
        else if (e.getActionCommand()=="取款")
        {
            new Login(e.getActionCommand());
        }
        else if (e.getActionCommand()=="转账")
        {
            new Login(e.getActionCommand());
        }
        else if (e.getActionCommand()=="改密")
        {
            new Login(e.getActionCommand());
        }
        else if (e.getActionCommand()=="开户")
        {
            new Register();  //跳转开户界面
        }
        else if (e.getActionCommand()=="挂失")
        {
            new ReportLose();  
        }
        else if (e.getActionCommand()=="退卡")
        {
            System.exit(0);;
        }


    }

}

我没有在这写main方法, 所以整体不能运行 需要自己加main方法才能运行

JAVA小项目-银行管理系统(图形化界面)1-菜单
http://blog.csdn.net/changjiale110/article/details/78880024
JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
http://blog.csdn.net/changjiale110/article/details/78896168
JAVA小项目-银行管理系统(图形化界面)3-登录与查询
http://blog.csdn.net/changjiale110/article/details/78916391
JAVA小项目-银行管理系统(图形化界面)4-验证
http://blog.csdn.net/changjiale110/article/details/78916497
JAVA小项目-银行管理系统(图形化界面)5-用户信息读写
http://blog.csdn.net/changjiale110/article/details/78926473
JAVA小项目-银行管理系统(图形化界面)6-存款与取款
http://blog.csdn.net/changjiale110/article/details/78926600
JAVA小项目-银行管理系统(图形化界面)7-改密与转账
http://blog.csdn.net/changjiale110/article/details/78955018
整体项目演示+源码包
http://blog.csdn.net/changjiale110/article/details/78955353

  • 43
    点赞
  • 217
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Java图书管理系统图形化界面可以使用Java Swing库来实现。下面是一个简单的实现步骤: 1. 创建Java Swing项目:在Eclipse或IntelliJ IDEA中创建Java Swing项目。 2. 设计界面:设计图书管理系统的界面,包括菜单栏、工具栏、按钮、文本框、表格等控件。 3. 编写代码:使用Java Swing库中的类和方法来实现各个控件的功能,例如JMenuBar、JToolBar、JButton、JTextField、JTable等。 4. 实现功能:通过编写Java代码实现图书管理系统的各种功能,如添加图书、删除图书、查询图书、借阅图书等。 5. 测试和调试:对图书管理系统进行测试和调试,确保其正常运行和响应用户的操作。 下面是一个简单的Java图书管理系统图形化界面实现的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class BookManager extends JFrame { private JMenuBar menuBar; private JMenu fileMenu, editMenu, helpMenu; private JMenuItem newItem, openItem, saveItem, exitItem; private JButton addButton, deleteButton, searchButton, borrowButton; private JTextField titleField, authorField, publisherField, yearField; private JTable bookTable; public BookManager() { // 初始化菜单栏 menuBar = new JMenuBar(); fileMenu = new JMenu("文件"); editMenu = new JMenu("编辑"); helpMenu = new JMenu("帮助"); newItem = new JMenuItem("新建"); openItem = new JMenuItem("打开"); saveItem = new JMenuItem("保存"); exitItem = new JMenuItem("退出"); fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(exitItem); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); setJMenuBar(menuBar); // 初始化工具栏 JToolBar toolBar = new JToolBar(); addButton = new JButton("添加"); deleteButton = new JButton("删除"); searchButton = new JButton("查询"); borrowButton = new JButton("借阅"); toolBar.add(addButton); toolBar.add(deleteButton); toolBar.add(searchButton); toolBar.add(borrowButton); add(toolBar, BorderLayout.NORTH); // 初始化表格 Object[][] data = { {"Java程序设计", "张三", "清华大学出版社", 2019}, {"Python编程", "李四", "人民邮电出版社", 2018}, {"HTML5与CSS3", "王五", "机械工业出版社", 2017} }; Object[] columnNames = {"书名", "作者", "出版社", "出版年份"}; bookTable = new JTable(data, columnNames); JScrollPane scrollPane = new JScrollPane(bookTable); add(scrollPane, BorderLayout.CENTER); // 初始化输入框 JPanel inputPanel = new JPanel(new GridLayout(4, 2)); inputPanel.add(new JLabel("书名:")); titleField = new JTextField(); inputPanel.add(titleField); inputPanel.add(new JLabel("作者:")); authorField = new JTextField(); inputPanel.add(authorField); inputPanel.add(new JLabel("出版社:")); publisherField = new JTextField(); inputPanel.add(publisherField); inputPanel.add(new JLabel("出版年份:")); yearField = new JTextField(); inputPanel.add(yearField); add(inputPanel, BorderLayout.SOUTH); // 设置窗口属性 setTitle("图书管理系统"); setSize(600, 400); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new BookManager(); } } ``` 运行上面的代码可以看到一个简单的Java图书管理系统图形化界面

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值