package com.WR.StudentMS.view; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.lang.reflect.InvocationTargetException; public class MainFarme extends JFrame { private JTabbedPane rightPanel; // 右侧内容显示区使用JTabbedPane private JPanel leftPanel; // 左侧功能栏 private JLabel titleLabel;// 标题标签 public MainFarme() { setTitle("学生管理系统"); setSize(800, 600); // 设置窗口大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口关闭操作 setLayout(new BorderLayout()); // 设置布局管理器 // 初始化 leftPanel 和 rightPanel leftPanel = new JPanel(); rightPanel = new JTabbedPane(); // 添加 leftPanel 和 rightPanel 到 JFrame add(leftPanel, BorderLayout.WEST); add(rightPanel, BorderLayout.CENTER); // 设置 leftPanel 的布局管理器 leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.Y_AXIS)); // 创建标题标签并设置华文行楷字体 titleLabel = new JLabel("学生管理系统", SwingConstants.CENTER); Font customFont1 = new Font("华文行楷", Font.PLAIN, 24); // 您可以调整字体大小 titleLabel.setFont(customFont1); setTitle(""); // 创建一个面板用于放置标题,并将其添加到顶部 JPanel titlePanel = new JPanel(); titlePanel.setLayout(new BorderLayout()); titlePanel.add(titleLabel, BorderLayout.CENTER); add(titlePanel, BorderLayout.NORTH); // 添加标题面板到窗口北部 Font customFont = new Font("华文行楷", Font.PLAIN, 16); // 添加功能按钮到左侧面板 JButton button1 = new JButton("修改个人密码"); button1.setFont(customFont); addFunctionButton(button1.getText(), TAdminPanel.class); JButton button2 = new JButton("专业信息管理"); button2.setFont(customFont); addFunctionButton(button2.getText(), ZhuanyePanel.class); JButton button3 = new JButton("班级信息管理"); button3.setFont(customFont); addFunctionButton(button3.getText(), ClassmPanel.class); JButton button4 = new JButton("课程信息管理"); button4.setFont(customFont); addFunctionButton(button4.getText(), CoursemPanel.class); JButton button5 = new JButton("学籍信息管理"); button5.setFont(customFont); addFunctionButton(button5.getText(), RegistrationPanel.class); JButton button6 = new JButton("成绩信息管理"); button6.setFont(customFont); addFunctionButton(button6.getText(), TchengjiPanel.class); JButton button7 = new JButton("奖惩信息管理"); button7.setFont(customFont); addFunctionButton(button7.getText(), JiangchengPanel.class); // 确保窗口在屏幕中间 setLocationRelativeTo(null); } private void addFunctionButton(String text, final Class panelClass) { JButton button = new JButton(text); Font customFont = new Font("华文行楷", Font.PLAIN, 16); button.setFont(customFont); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { // 使用 panelClass 创建实例并添加到 rightPanel JComponent panel = (JComponent) panelClass.getDeclaredConstructor().newInstance(); rightPanel.addTab(text, panel); rightPanel.setSelectedComponent(panel); } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException ex) { JOptionPane.showMessageDialog(MainFarme.this, "创建面板实例失败: " + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE); } } }); leftPanel.add(button); // 将按钮添加到 leftPanel } public static void main(String[] args) { // 使用SwingUtilities.invokeLater确保GUI创建和更新在事件调度线程(EDT)上执行 SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // 创建MainFarme窗口实例,并设置其可见性为true,显示窗口 new MainFarme().setVisible(true); } }); } }