是否有可能创建一个比Windows中预定义的32x32更大的游标(通过方法createCustomCursor()
)(例如64x64甚至更多)?
Toolkit toolkit = Toolkit.getDefaultToolkit();
final Image cursor = toolkit.getImage(getClass().getClassLoader().getResource("images/cursor.png"));
toolkit.getBestCursorSize(64, 64);
Cursor mycursor=toolkit.createCustomCursor(cursor, new Point(0,0), "cursor");
setCursor(mycursor);
我尝试了以下内容:
Cursor emptyCursor = Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB), new Point(0, 0), "empty");
setCursor(emptyCursor);
this.addMouseMotionListener(new MouseMotionListener(){
public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
xCursor = e.getX();
yCursor = e.getY();
repaint();
//e.consume();
}
});
public void paint( Graphics g ) {
g.drawImage(cursor, xCursor, yCursor, null);
}
但它不起作用,整个GUI消失了,光标在每一点被绘制,所以我必须以某种方式删除它?
答案 0 :(得分:1)
是否有方法使光标小于预定义的32x32?如果是这样只是让光标变得非常小以至于无法被注意到,或者制作一个透明的光标......那么,只需将图像移动到光标当前位置的每个坐标(这里插入所需的时间间隔)
答案 1 :(得分:1)
Windows似乎只允许大小为32x32像素的游标,所以如果你想要另一个大小,你必须解决它。
要制作更大的光标,我相信这会有效:
创建一个完全透明的自定义光标。
使用mouseMotionListener
获取光标的位置。
将光标图像绘制在真实(透明)光标的位置。