📄 cursors.java
字号:
package draw;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
/**
* 一些自创的光标
*
* @author Thihy
*
*/
public class Cursors {
/**
* 创建切变光标
*
* @param style
* 样式
* @return 光标的图形
*/
protected static Image creatShearCursorImage(int style) {
BufferedImage bi = new BufferedImage(32, 32,
BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g = bi.createGraphics();
g.rotate(style * Math.PI / 4, 16, 16);
g.setColor(Color.black);
g.drawLine(8, 15, 24, 15);
g
.fill(new Polygon(new int[] { 8, 11, 11 }, new int[] { 15, 12,
15 }, 3));
g.drawLine(8, 17, 24, 17);
g.fill(new Polygon(new int[] { 24, 21, 21 }, new int[] { 17, 20, 17 },
3));
return bi;
}
/**
* 获取指定的光标
*
* @param Style
* 样式
* @return 光标
*/
public static Cursor getCursor(int Style) {
switch (Style) {
case N_SHEAR_CURSOR:
case S_SHEAR_CURSOR:
return Toolkit.getDefaultToolkit().createCustomCursor(
creatShearCursorImage(0), new Point(15, 16), "Cursor");
case E_SHEAR_CURSOR:
case W_SHEAR_CURSOR:
return Toolkit.getDefaultToolkit().createCustomCursor(
creatShearCursorImage(2), new Point(15, 16), "Cursor");
case NW_SHEAR_CURSOR:
case SE_SHEAR_CURSOR:
return Toolkit.getDefaultToolkit().createCustomCursor(
creatShearCursorImage(-1), new Point(15, 16), "Cursor");
case SW_SHEAR_CURSOR:
case NE_SHEAR_CURSOR:
return Toolkit.getDefaultToolkit().createCustomCursor(
creatShearCursorImage(1), new Point(15, 16), "Cursor");
default:
return Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
}
}
/**
* 在正八边形北边界上切边的图标,为左右向。
*/
public static final int N_SHEAR_CURSOR = 0;
/**
* 在正八边形东边界上切边的图标,为上下向。
*/
public static final int E_SHEAR_CURSOR = 2;
/**
* 在正八边形南边界上切边的图标,为左右向。
*/
public static final int S_SHEAR_CURSOR = 4;
/**
* 在正八边形西边界上切边的图标,为上下向。
*/
public static final int W_SHEAR_CURSOR = 6;
/**
* 在正八边形东北边界上切边的图标,为左上-右下向。
*/
public static final int NE_SHEAR_CURSOR = 1;
/**
* 在正八边形西北边界上切边的图标,为左下-右上向。
*/
public static final int NW_SHEAR_CURSOR = 7;
/**
* 在正八边形东南边界上切边的图标,为左下-右上向。
*/
public static final int SE_SHEAR_CURSOR = 3;
/**
* 在正八边形西南边界上切边的图标,为左上-右下向。
*/
public static final int SW_SHEAR_CURSOR = 5;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -