📄 counter.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 + -