Java实战之图书管理系统(swing版)(4)——主界面及功能实现

继续上一节的项目,本节将实现主界面,按照下图创建类文件:

其中各个类文件的内容如下:

AboutSoftDialog.java

package bookManageSystem.view;
​
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
​
public class AboutSoftDialog extends JDialog implements ActionListener, MouseListener {
​
    @Override
    public void actionPerformed(ActionEvent e) {
​
    }
​
    @Override
    public void mouseClicked(MouseEvent e) {
​
    }
​
    @Override
    public void mousePressed(MouseEvent e) {
​
    }
​
    @Override
    public void mouseReleased(MouseEvent e) {
​
    }
​
    @Override
    public void mouseEntered(MouseEvent e) {
​
    }
​
    @Override
    public void mouseExited(MouseEvent e) {
​
    }
}

BookAddPanel.java

package bookManageSystem.view;
​
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
​
public class BookAddPanel extends JPanel implements ActionListener {
​
    @Override
    public void actionPerformed(ActionEvent e) {
​
    }
}

BookManagePanel.java

package bookManageSystem.view;
​
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
​
public class BookManagePanel extends JPanel implements ActionListener, ListSelectionListener {
​
    @Override
    public void actionPerformed(ActionEvent e) {
​
    }
​
    @Override
    public void valueChanged(ListSelectionEvent e) {
​
    }
}

BookTypeAddPanel.java

package bookManageSystem.view;
​
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
​
public class BookTypeAddPanel extends JPanel implements ActionListener {
​
    @Override
    public void actionPerformed(ActionEvent e) {
​
    }
}

BookTypeManagePanel.java

package bookManageSystem.view;
​
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
​
public class BookTypeManagePanel extends JPanel implements ActionListener, ListSelectionListener {
​
    @Override
    public void actionPerformed(ActionEvent e) {
​
    }
​
    @Override
    public void valueChanged(ListSelectionEvent e) {
​
    }
}

上面除了Main.java和LogupFrame.java这是第一节就写了的代码,不需要进行增删现阶段。

然后就是MainFrame.java,该类是主界面类,其中代码如下:

package bookManageSystem.view;
​
import bookManageSystem.tools.ComponentTools;
​
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
​
public class MainFrame extends JFrame implements ActionListener {
    private ComponentTools componentTools = new ComponentTools();
​
    private JMenuBar menuBar;
    private JMenu bookTypeManageMenu, bookManageMenu, otherMenu;
    private JMenuItem bookTypeAddMenuItem, bookTypeManageMenuItem, bookAddMenuItem, bookManageMenuItem, exitMenuItem,
            aboutSoftMenuItem;
​
    MainFrame() {
        this.setTitle("惰惰龟图书管理系统");
        this.setBounds(400, 400, 800, 700);
​
        // 为主界面添加菜单条
        this.setJMenuBar(this.createMenuBar());
        // 设置主界面的内容面板
        this.setContentPane(createMainPanel());
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 设置默认不显示
        this.setVisible(false);
​
        // 为菜单条中的菜单项注册事件
        bookTypeAddMenuItem.addActionListener(this);
        bookTypeManageMenuItem.addActionListener(this);
        bookAddMenuItem.addActionListener(this);
        bookManageMenuItem.addActionListener(this);
        exitMenuItem.addActionListener(this);
        aboutSoftMenuItem.addActionListener(this);
    }
​
    /**
     * 为主界面创建一个菜单条
     *
     * @return 返回菜单条
     */
    private JMenuBar createMenuBar() {
        // 实例化一个菜单条对象
        menuBar = new JMenuBar();
​
        // 【图书类别管理】菜单
        bookTypeManageMenu = new JMenu("图书类别管理");
        bookTypeAddMenuItem = new JMenuItem("图书类别添加");
        bookTypeManageMenuItem = new JMenuItem("图书类别维护");
        bookTypeManageMenu.add(bookTypeAddMenuItem);
        bookTypeManageMenu.add(bookTypeManageMenuItem);
        menuBar.add(bookTypeManageMenu);
​
        // 【图书管理】菜单
        bookManageMenu = new JMenu("图书管理");
        bookAddMenuItem = new JMenuItem("图书添加");
        bookManageMenuItem = new JMenuItem("图书维护");
        bookManageMenu.add(bookAddMenuItem);
        bookManageMenu.add(bookManageMenuItem);
        menuBar.add(bookManageMenu);
​
        // 【其他】菜单
        otherMenu = new JMenu("其他");
        exitMenuItem = new JMenuItem("退出");
        aboutSoftMenuItem = new JMenuItem("关于软件");
        otherMenu.add(exitMenuItem);
        otherMenu.add(aboutSoftMenuItem);
        menuBar.add(otherMenu);
​
        // 批量为菜单项设置图标
        componentTools.setIcons(
                new JMenuItem[]{bookTypeAddMenuItem, bookTypeManageMenuItem, bookAddMenuItem, bookManageMenuItem, exitMenuItem, aboutSoftMenuItem},
                new String[]{"src/bookManageSystem/images/add.png", "src/bookManageSystem/images/edit.png", "src" +
                        "/bookManageSystem/images/add.png", "src/bookManageSystem/images/edit.png", "src" +
                        "/bookManageSystem/images/exit.png", "src/bookManageSystem/images/about.png"}
        );
​
        return menuBar;
    }
​
    /**
     * 为主界面创建内容面板
     *
     * @return 返回一个面板
     */
    private JPanel createMainPanel() {
        // 实例化一个面板
        JPanel panel = new JPanel();
        // 设置面板中的布局方式
        panel.setLayout(new BorderLayout());
        JLabel label = new JLabel();
        label.setHorizontalAlignment(SwingConstants.CENTER);
        label.setVerticalAlignment(SwingConstants.CENTER);
        ImageIcon ii = new ComponentTools().iconSize(new ImageIcon("src/bookManageSystem/images/bookmanagesystem.png"), 600, 400);
        // 设置一个图片标签
        label.setIcon(ii);
        // 将标签添加到面板中
        panel.add(label);
        return panel;
    }
​
    @Override
    public void actionPerformed(ActionEvent e) {
        // “图书类别添加”菜单项事件处理
        if (e.getSource() == bookTypeAddMenuItem) {
            // 将主界面的内容面板替换成图书类别添加面板
            this.setContentPane(new BookTypeAddPanel());
            // 并设置该面板显示
            this.setVisible(true);
        }
        // “图书类别维护”菜单项事件处理
        if (e.getSource() == bookTypeManageMenuItem) {
            // 将主界面的内容面板替换成图书类别维护面板
            this.setContentPane(new BookTypeManagePanel());
            // 并设置该面板显示
            this.setVisible(true);
        }
        // “图书添加”菜单项事件处理
        if (e.getSource() == bookAddMenuItem) {
            // 将主界面的内容面板替换成图书添加面板
            this.setContentPane(new BookAddPanel());
            // 并设置该面板显示
            this.setVisible(true);
        }
        // “图书维护”菜单项事件处理
        if (e.getSource() == bookManageMenuItem) {
            // 将主界面的内容面板替换成图书维护面板
            this.setContentPane(new BookManagePanel());
            // 并设置该面板显示
            this.setVisible(true);
        }
        // “退出”菜单项事件处理
        if (e.getSource() == exitMenuItem) {
            // 结束整个程序
            System.exit(0);
        }
        // “关于软件”菜单项事件处理
        if (e.getSource() == aboutSoftMenuItem) {
            // 设置关于软件提示框显示
            new AboutSoftDialog().setVisible(true);
        }
    }
}

虽然这里完成了代码,但是登录成功还是不会出现主界面的,因为在第一节中的登录里面是把这一行代码给注释了的,

要做的即是取消改行注释,即代码如下:

// 当登录成功后,跳转到主界面
new MainFrame().setVisible(true);

点击程序进行运行,登录成功后结果如下:

img

其中顶部的菜单项是可以点击的

点击后主界面会变成如下,因为还没有为这些面板添加控件,就只有一片空白。

 

 

可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。

注意:在公众号后台回复【20200130】可获取本节的源码。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值