本项目为一款基于Java开发的教学管理系统,旨在优化学校的日常教学管理流程,增强师生互动与资源分配效率。
```java
package cn.com.edu.view.frame;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import org.jvnet.substance.SubstanceLookAndFeel;
import org.jvnet.substance.skin.FindingNemoSkin;
import cn.com.edu.action.JMenuItemAction;
import cn.com.edu.action.MainFrameAction;
import cn.com.edu.util.GBC;
import cn.com.edu.view.panel.AddStudentInfoPanel;
import cn.com.edu.view.panel.FindStudentInfoPanel;
/**
* 教务管理系统主界面
*/
public class MainFrame extends JFrame {
private static MainFrame instance; // 单例对象引用
private JMenuBar bar; // 菜单条
private JMenu studentJMenu; // 学生管理菜单
private JMenu teacherJMenu; // 教师管理菜单
private JPanel center = new JPanel(); // 中心面板,使用卡片布局放置内容
private CardLayout card = new CardLayout();
private JPanel west; // 西边面板
private JSplitPane split;
private JToolBar tool;
MainFrameAction action = new MainFrameAction(this);
JMenuItemAction menuItemAction = new JMenuItemAction(this);
SystemTray tray;
TrayIcon trayIcon;
/**
* 使用单例设计模式创建主界面对象
*/
private MainFrame() {
init();
}
public static MainFrame getInstance() {
if (instance == null) {
instance = new MainFrame();
}
return instance;
}
/**
* 初始化主界面
*/
public void init() {
// 设置标题和图标
setTitle(教务管理系统);
ImageIcon icon = new ImageIcon(img/switchuser.png);
setIconImage(icon.getImage());
// 调整窗口大小并居中显示
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
setSize(size.width, size.height - 20);
setLocationRelativeTo(null);
// 添加工具条和菜单栏
add(createTool(), BorderLayout.NORTH);
setJMenuBar(createJMenuBar());
// 卡片布局添加卡片面板到主界面
center.setLayout(card);
addCardPanel(center);
add(createSplit());
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
createSystemTray();
closeWindow(this);
setVisible(true);
}
public JMenuBar createJMenuBar() {
if (bar == null) {
bar = new JMenuBar();
studentJMenu = createJMenu(学生管理);
teacherJMenu = createJMenu(教师管理);
addJMenuItem(studentJMenu, 添加学生信息);
addJMenuItem(studentJMenu, 查询学生信息);
addJMenuItem(studentJMenu, 修改学生信息);
addJMenuItem(studentJMenu, 删除学生信息);
studentJMenu.addSeparator();
JMenuItem exitItem = new JMenuItem(退出);
exitItem.addActionListener(menuItemAction);
studentJMenu.add(exitItem);
bar.add(studentJMenu);
}
return bar;
}
private JMenu createJMenu(String name) {
JMenu menu = new JMenu(name);
return menu;
}
private void addJMenuItem(JMenu menu, String name) {
JMenuItem item = new JMenuItem(name);
item.addActionListener(menuItemAction);
menu.add(item);
}
public void addCardPanel(JPanel center) {
center.add(new AddStudentInfoPanel(), 添加学生信息);
center.add(new FindStudentInfoPanel(), 查询学生信息);
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
center.add(jp3, 修改学生信息);
center.add(jp4, 删除学生信息);
}
public JPanel createWestPanel() {
if (west == null) {
west.setLayout(new GridBagLayout());
west.add(createButton(添加学生信息, img/switchuser.png), new GBC(0, 0).setInset(10));
west.add(createButton(查询学生信息, img/switchuser.png), new GBC(0, 1).setInset(1