📄 mainframe.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 + -