package View; import Base.Exam_result; import Service.Exam_service; import Service.User_service; import javax.swing.*; import java.awt.*; public class Result_frame extends JFrame { private Exam_service examService; private Exam_result result; private User_service userService; private String email; public Result_frame(Exam_service ex,Exam_result result, User_service userService, String email) { this.examService=ex; this.result = result; this.userService = userService; this.email = email; initializeUI(); } private void initializeUI() { setTitle("考试结果"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 400); setLocationRelativeTo(null); setResizable(false); // 主面板 JPanel mainPanel = new JPanel(new BorderLayout(10, 10)); mainPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); // 标题 JLabel titleLabel = new JLabel("考试结果", JLabel.CENTER); titleLabel.setFont(new Font("微软雅黑", Font.BOLD, 24)); mainPanel.add(titleLabel, BorderLayout.NORTH); // 结果信息 JPanel resultPanel = new JPanel(new GridLayout(5, 1, 10, 10)); resultPanel.add(new JLabel("考试类型: " + result.getExamType())); resultPanel.add(new JLabel("题目数量: " + result.getTotalQuestions())); resultPanel.add(new JLabel("正确题目: " + result.getCorrectAnswers())); resultPanel.add(new JLabel("得分: " + String.format("%.2f", result.getScore()))); resultPanel.add(new JLabel("用时: " + result.getDuration())); mainPanel.add(resultPanel, BorderLayout.CENTER); // 按钮面板 JPanel buttonPanel = new JPanel(new FlowLayout()); JButton reviewButton =new JButton("查看错题"); JButton mainMenuButton = new JButton("返回主菜单"); JButton exitButton = new JButton("退出"); buttonPanel.add(reviewButton); buttonPanel.add(mainMenuButton); buttonPanel.add(exitButton); mainPanel.add(buttonPanel, BorderLayout.SOUTH); // 添加事件监听器 reviewButton.addActionListener(e->openReviewFrame()); mainMenuButton.addActionListener(e -> openMainFrame()); exitButton.addActionListener(e -> System.exit(0)); add(mainPanel); } private void openMainFrame() { Main_frame mainFrame = new Main_frame(userService, email); mainFrame.setVisible(true); this.dispose(); } private void openReviewFrame(){ examService.set_now_index(0); Review_frame reviewFrame= new Review_frame(examService,userService, email,result); reviewFrame.setVisible(true); this.dispose(); } }