⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 此文档针对开发人员和测试人员。第二章对软件进行了全面的描述。第三章对接口进行了分析。第四章对软件实现的功能进行概述。第五章对软件后续开发实现提出的要求。第六章提出其他一些在软件开发过程中需要注意的问题
💻 JAVA
字号:
package com.ciash.bms.gui.main;

import javax.swing.*;
import java.awt.*;
import com.ciash.common.gui.tool.ToolKit;
import javax.swing.table.DefaultTableModel;
import java.awt.Component;
import com.ciash.bms.entity.User;
import com.ciash.bms.entity.Popedom;
import com.ciash.bms.gui.impl.BookEditDialog;
import com.ciash.bms.gui.impl.EditControlPanel;
import com.ciash.bms.gui.impl.LoginDialog;
import com.ciash.bms.gui.impl.UserEditDialog;
import com.ciash.bms.gui.impl.UserLoginInfoPanel;
import com.ciash.bms.gui.menu.BMSMenuBar;
import com.ciash.bms.gui.search.BookSearchPanel;
import com.ciash.bms.gui.search.UserSearchPanel;
import com.ciash.bms.gui.search.loader.BookLoaderPanel;
import com.ciash.bms.gui.search.loader.BookLoaderPanel;
import com.ciash.bms.gui.updater.LoginUpdater;
import com.ciash.bms.gui.updater.SearchUpdater;
import com.ciash.bms.observer.Observer;
import java.awt.event.*;
import com.ciash.common.db.bean.MySqlDBSource;
import com.ciash.bms.config.AppSetting;

/**
 * <p>
 * Title: BMS
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2009
 * </p>
 * <p>
 * Company: Cigarette Ash Inc.
 * </p>
 *
 * @author Cigarette Ash
 * @version 1.0
 */

public class MainFrame extends JFrame implements LoginUpdater, SearchUpdater {

	private JTabbedPane resultTablePane = new JTabbedPane();

	private String welcomeTitle = "欢迎使用图书管理系统 ";

	private BookSearchPanel bookSearchPanel;

	private UserSearchPanel userSearchPanel;

	private UserLoginInfoPanel userLoginInfoPanel;

	private boolean isLogin;

	private BookLoaderPanel bookLoaderPanel;

	private JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));

	private EditControlPanel userEditPanel;

	public MainFrame() {
		setSize(800, 600);
		setLocation(ToolKit.getScreenCenterLocation(getSize()));
		setUserLoginName("未登录", "");
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		getContentPane().add(resultTablePane, BorderLayout.SOUTH);
		getContentPane().add(northPanel,BorderLayout.NORTH);
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
	}

	public void setBookSearchPanel(BookSearchPanel panel) {
		this.bookSearchPanel = panel;
	}

	public void setUserSearchPanel(UserSearchPanel panel) {
		this.userSearchPanel = panel;
	}

	public UserSearchPanel getUserSearchPanel() {
		return this.userSearchPanel;
	}

	public BookSearchPanel getBookSearchPanel() {
		return this.bookSearchPanel;
	}

	public void removeBookSearchPanel() {
		resultTablePane.remove(bookSearchPanel);
	}

	public void removeUserSearchPanel() {
		resultTablePane.remove(userSearchPanel);
	}

	public void setUserLoginInfoPanel(UserLoginInfoPanel userLoginInfoPanel) {
		this.userLoginInfoPanel = userLoginInfoPanel;
	}

	public UserLoginInfoPanel getUserLoginInfoPanel() {
		return userLoginInfoPanel;
	}

	// ---------------------------------------------------------------------------------------------
	// 用户登陆、退出更新
	// 实现自 接口 UserLoginUpdater
	public void updateLogin(User user, Popedom pop) {
		isLogin = true;
		setUserLoginName(user.getUserId(), pop.getPopedom());
		setLoginUser(user);
		showLoginInfo();
	}

	public void updateQuit() {
		setUserLoginName("未登录", "");
		hideLoginInfo();
		isLogin = false;
	}

	private void setUserLoginName(String id, String desc) {
		setTitle(welcomeTitle + "登陆状态:" + desc + "[" + id + "]");
	}

	/**
	 * 设置登陆面板上的值
	 *
	 * @param user
	 *            要登陆的用户
	 */
	private void setLoginUser(User user) {
		userLoginInfoPanel.setSelectUser(user);
		getContentPane().add(userLoginInfoPanel, BorderLayout.WEST);
		getContentPane().validate();
		getContentPane().repaint();
	}

	private void hideLoginInfo() {
		userLoginInfoPanel.setVisible(false);
	}

	private void showLoginInfo() {
		if (resultTablePane.getComponentCount() == 0 && isLogin) {
			userLoginInfoPanel.setVisible(true);
		}
		else {
			userLoginInfoPanel.setVisible(false);
		}
	}

	// ---------------------------------------------------------------------------------------------
	public void hideSearchBook() {
		resultTablePane.remove(bookSearchPanel);
		resultTablePane.repaint();
		resultTablePane.validate();
		showLoginInfo();
	}

	public void hideSearchUser() {
		resultTablePane.remove(userSearchPanel);
		resultTablePane.repaint();
		resultTablePane.validate();
		showLoginInfo();
	}

	public void showSearchBook() {
		resultTablePane.add(bookSearchPanel, "书籍查询结果");
		resultTablePane.setSelectedComponent(bookSearchPanel);
		resultTablePane.repaint();
		resultTablePane.validate();
		hideLoginInfo();
	}

	public void showSearchUser() {
		resultTablePane.add(userSearchPanel, "用户查询结果");
		resultTablePane.setSelectedComponent(userSearchPanel);
		resultTablePane.repaint();
		resultTablePane.validate();
		hideLoginInfo();
	}

	public void setEditPanel(EditControlPanel userEditControlPanel) {
		this.userEditPanel = userEditControlPanel;
		northPanel.add(userEditControlPanel);
	}

	public EditControlPanel removeUserEditPanel() {
		northPanel.remove(userEditPanel);
		northPanel.validate();
		northPanel.repaint();
		return userEditPanel;
	}

	public void setShowAllBookPanel(BookLoaderPanel showAllBookPanel) {
		getContentPane().add(showAllBookPanel,BorderLayout.CENTER);
	}

	public void addPanelOnNorth(JPanel panel){
		northPanel.add(panel);
	}
    private void jbInit() throws Exception {
      this.addWindowListener(new MainFrame_this_windowAdapter(this));
    }

    void this_windowClosing(WindowEvent e) {
        int result = JOptionPane.showConfirmDialog(null, "你确定要退出吗?", "提示!",
                JOptionPane.WARNING_MESSAGE);
        if (result == JOptionPane.OK_OPTION) {
            setVisible(false);
            MySqlDBSource.getInstance(AppSetting.connectionStringBean).close();
            System.exit(0);
        }
    }

    private class MainFrame_this_windowAdapter
        extends java.awt.event.WindowAdapter {
        MainFrame adaptee;

        MainFrame_this_windowAdapter(MainFrame adaptee) {
            this.adaptee = adaptee;
        }

        public void windowClosing(WindowEvent e) {
            adaptee.this_windowClosing(e);
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -