📄 graphicsutil.java
字号:
/* * GraphicsUtil.java * * Created on April 20, 2005, 3:40 PM */package minegame;import java.awt.*;import javax.swing.*;/** * Provide graphics drawing utility methods for field cells. * * Cell Size 32*32 * * @author hysun */public class GraphicsUtil { /** Number display colors */ public static Color[] colorreg = new Color[] { null, // 0 Color.blue, // 1 Color.green.darker(), // 2 Color.red, // 3 Color.blue.darker(), // 4 Color.MAGENTA, // 5 Color.CYAN.darker(), // 6 Color.BLACK, // 7 Color.orange.darker() // 8 }; /** Mine body color */ public static Color mbcolor = new Color(90, 90, 90); /** unknown cell color */ public static Color ukcolor = new Color(99, 130, 191); /** number font */ public static Font numfont = new Font("Verdana", Font.BOLD, 18); /** question mark font */ public static Font qnmfont = new Font("Verdana", Font.PLAIN, 10); /** Draw an unknown cell */ public static void drawUnknown(Graphics g, int x, int y) { g.setColor(ukcolor); g.fillRect(x, y, 32, 32); } /** Draw a mine cell */ public static void drawMine(Graphics g, int x, int y) { g.clearRect(x, y, 32, 32); g.setColor(mbcolor); g.fillOval(x+5, y+9, 21, 19); g.setColor(Color.black); g.fillRect(x+11, y+5, 10, 6); } /** Draw a flag cell */ public static void drawFlag(Graphics g, int x, int y) { g.clearRect(x, y, 32, 32); g.setColor(Color.red); g.fillRect(x+8, y+8, 16, 10); g.setColor(Color.black); g.drawLine(x+8, y+8, x+8, y+24); g.drawLine(x+9, y+8, x+9, y+24); } /** Draw a doubt cell */ public static void drawDoubt(Graphics g, int x, int y) { g.clearRect(x, y, 32, 32); g.setColor(colorreg[4]); g.fillRect(x+8, y+8, 16, 10); g.setColor(Color.black); g.drawLine(x+8, y+8, x+8, y+24); g.drawLine(x+9, y+8, x+9, y+24); g.setColor(Color.yellow); g.setFont(qnmfont); FontMetrics fm = g.getFontMetrics(); String s = "?"; int sx = (14 - fm.stringWidth(s)) / 2; int sy = (10 - fm.getHeight()) / 2 + fm.getAscent(); g.drawString(s, x+sx+10, y+sy+8); } /** Draw a cross cell. used to indicate wrong flag/doubt when game over */ public static void drawCross(Graphics g, int x, int y) { g.setColor(Color.black); g.drawLine(x+2, y+2, x+28, y+28); g.drawLine(x+2, y+3, x+28, y+29); g.drawLine(x+3, y+2, x+29, y+28); g.drawLine(x+2, y+28, x+28, y+2); g.drawLine(x+2, y+27, x+28, y+1); g.drawLine(x+3, y+28, x+29, y+2); } /** Draw a number cell */ public static void drawNumber(Graphics g, int x, int y, int i) { g.clearRect(x, y, 32, 32); if (i == 0) return; g.setColor(colorreg[i]); g.setFont(numfont); FontMetrics fm = g.getFontMetrics(); String s = String.valueOf(i); int sx = (32 - fm.stringWidth(s)) / 2; int sy = (32 - fm.getHeight()) / 2 + fm.getAscent(); g.drawString(s, x+sx, y+sy); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -