⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utils.java

📁 用java实现的全真模拟windows下的扫雷程序。不过目前实现以button方式实现。改进可以考虑以位图形式实现
💻 JAVA
字号:
/*
 * Utils.java 1.0 2003-06-25
 *
 * Copyleft (c) 2003 RatKing.
 */

package jmine;

import java.awt.*;

/**
 * 实用工具类
 *
 * @author <a href="ratking@ynet.com">RatKing</a>
 * @version 1.0
 */
public class Utils {

    /**
     * 将窗口置于屏幕中央
     */
    public static void center(Window w) {
        center(null, w);
    }

    /**
     * 将窗口w置于main的中央
     */
    public static void center(Window main, Window w) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension mainSize;
        Dimension size = w.getSize();
        Point location = null;
        Point mainLocation;

        // 窗口尺寸不得大于屏幕尺寸
        if(size.height > screenSize.height)
            size.height = screenSize.height;
        if(size.width > screenSize.width)
            size.width = screenSize.width;

        if(main == null) {
            location = new Point((screenSize.width - size.width) / 2,
                                 (screenSize.height - size.height) / 2);
        }
        else {
            mainSize = main.getSize();
            mainLocation = main.getLocationOnScreen();
            location = main.getLocation();
            location.x += (mainSize.width - size.width) / 2;
            location.y += (mainSize.height - size.height) / 2;

            // 窗口必须位于屏幕内部
            if (location.x + size.width > screenSize.width) {
                location.x = screenSize.width - size.width;
            }
            if (location.y + size.height > screenSize.height) {
                location.y = screenSize.height - size.height;
            }
            if (location.x < 0) {
                location.x = 0;
            }
            if (location.y < 0) {
                location.y = 0;
            }
        }
        w.setSize(size);
        w.setLocation(location);
    }

    /**
     * 缩紧并居中显示窗口
     */
    public static void packCenterShow(Window main, Window window) {
        window.pack();
        center(main, window);
        window.show();
    }

    /**
     * 缩紧并显示窗口
     */
    public static void packPlaceShow(Window window) {
        window.pack();
        place(window);
        window.show();
    }

    /**
     * 重新确定窗口的位置
     */
    private static void place(Window w) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension size = w.getSize();
        Point location = w.getLocationOnScreen();
        boolean sizeChanged = false;
        boolean locationChanged = false;

        // 窗口尺寸不得大于屏幕尺寸
        if(size.height > screenSize.height) {
            size.height = screenSize.height;
        }
        if(size.width > screenSize.width) {
            size.width = screenSize.width;
        }

        // 窗口必须位于屏幕内部
        if(location.x < 0) {
            location.x = 0;
        }
        if(location.y < 0) {
            location.y = 0;
        }
        if(location.x + size.width > screenSize.width) {
            location.x = screenSize.width - size.width;
        }
        if(location.y + size.height > screenSize.height) {
            location.y = screenSize.height - size.height;
        }

        w.setSize(size);
        w.setLocation(location);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -