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

📄 counter.java

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

package jmine;

import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.border.LineBorder;

/**
 * 计数器
 *
 * @author <a href="ratking@ynet.com">RatKing</a>
 * @version 1.0
 */
public class Counter extends JComponent {
    private JMine jmine;

/*    private static final ImageIcon[] icon = new ImageIcon[11];
    // 载入0~9这10个数字和负号“-”的图片
    static {
        for (int i = 0; i < 10; i++) {
            icon[i] = new ImageIcon(Toolkit.getDefaultToolkit().getImage("images/n" + i + ".png"));
        }
        icon[10] = new ImageIcon(Toolkit.getDefaultToolkit().getImage("images/minus.png"));
    }
*/
    private ImageIcon[] icon = new ImageIcon[11];

    private int number;
    private ImageIcon[] myIcon = new ImageIcon[3];

    public Counter(JMine jmine) {
        this(jmine, 0);
    }

    public Counter(JMine jmine, int number) {
        this.jmine = jmine;

        // 载入0~9这10个数字和负号“-”的图片
        for (int i = 0; i < 10; i++) {
            icon[i] = jmine.createImageIcon("n" + i + ".png", "数字" + i);
        }
        icon[10] = jmine.createImageIcon("minus.png", "负号");

        setNumber(number);
        setBorder(LineBorder.createGrayLineBorder());
        int width = 0;
        int heightMax = 0;
        for (int i = 0; i < myIcon.length; i++) {
            width += myIcon[i].getIconWidth();
            heightMax = (heightMax >= myIcon[i].getIconHeight()
                        ? heightMax
                        : myIcon[i].getIconHeight());
        }
        Dimension d = new Dimension(width+2, heightMax+2);
        setPreferredSize(d);
        setMinimumSize(d);
        setMaximumSize(d);
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int n) {
        number = n;
        setIcon(number);
        repaint();
    }

    public void reset() {
        setNumber(0);
    }

    public void increase() {
        setNumber(++number);
    }

    public void decrease() {
        setNumber(--number);
    }

    /**
     * 根据参数提供的数字来设置3个图像
     */
    private void setIcon(int n) {
        int n1; // 百位数或负号“-”
        int n2; // 十位数
        int n3; // 个位数

        if (n >= 0) {
            n1 = (n / 100) % 10;// 百位数
            n2 = (n / 10) % 10;
            n3 = n % 10;
        }
        else {  // 负数,n < 0
            n1 = 10; // 负号“-”
            n2 = (-n / 10) % 10;
            n3 = -n % 10;
        }
        myIcon[0] = icon[n1];
        myIcon[1] = icon[n2];
        myIcon[2] = icon[n3];
    }

    /** 绘制三个数字 */
    public void paintComponent(Graphics g) {
        int x = 1;
        for (int i = 0; i < myIcon.length; i++) {
            g.drawImage(myIcon[i].getImage(), x, 1, this);
            x += myIcon[i].getIconWidth();;
        }
    }
}

⌨️ 快捷键说明

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