package com.msksbr.MainFrm.MenuItemDiaog;

import com.msksbr.LoginFrm.ScreenSize;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;

/**
 * aboutDIalog 类用于显示关于图书管理系统的对话框。
 */
public class aboutDIalog extends JDialog {
    // 内容面板
    private JPanel contentPane;
    // 确认按钮
    private JButton buttonOK;
    // 图标面板
    private JPanel iconPanel;

    /**
     * aboutDIalog 构造函数，初始化对话框并设置相关属性。
     */
    public aboutDIalog() {
        // 设置对话框标题
        setTitle("关于图书管理系统");
        // 设置对话框初始不可见
        setVisible(false);
        // 设置对话框的内容面板
        setContentPane(contentPane);
        // 设置对话框为模态对话框
        setModal(true);
        // 设置默认按钮为确认按钮
        getRootPane().setDefaultButton(buttonOK);
        // 设置对话框不可调整大小
        setResizable(false);

        // 创建图标标签并设置图标
        JLabel iconLabel = new JLabel();
        // 使用类加载器获取资源的URL
        URL iconUrl = getClass().getResource("/com/msksbr/images/logo_128.png");
        if (iconUrl != null) {
            // 创建ImageIcon对象
            iconLabel.setIcon(new ImageIcon(iconUrl));
        } else {
            // 如果资源未找到，记录错误或显示默认图标
            System.err.println("图标资源未找到: /com/msksbr/images/logo_128.png");
            // 可以在这里设置一个默认图标
            // iconLabel.setIcon(new ImageIcon("path/to/default/icon.png"));
        }

        // 将图标标签添加到图标面板
        iconPanel.add(iconLabel);

        // 设置对话框为非模态对话框
        setModal(false);
        // 设置对话框始终在最顶层显示
        setAlwaysOnTop(true);

        // 为确认按钮添加事件监听器
        buttonOK.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 点击确认按钮时执行的操作
                onOK();
            }
        });

        // 调整对话框大小以适应内容
        pack();
        // 设置对话框位置
        setLocation();
    }

    /**
     * 点击确认按钮时执行的操作，关闭对话框。
     */
    private void onOK() {
        // 关闭对话框
        dispose();
    }

    /**
     * 设置对话框位置，使其居中显示在屏幕上。
     */
    public void setLocation() {
        // 设置对话框位置，使其居中显示在屏幕上
        setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
    }
}
