在java中设置自定义光标的大小

时间:2016-07-21 08:49:34

标签: java jframe cursor

我使用以下代码

在名为ageLabel的标签组件上定制了一个游标
ageLabel.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(new javax.swing.ImageIcon(getClass().getResource("/images/image1.jpg")).getImage(),new Point(5,5),"custom cursor"));

无论如何它工作正常,但我想要做的是增加自定义光标的大小。我尝试将点更改为(10,10),但光标大小不会改变。我也试过改变我使用的图像的尺寸,它仍然不会改变。我通过互联网搜索但无济于事。无论如何都可以调整光标大小吗?如果是我该怎么做? 提前感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

Java的Image类具有内置的缩放功能。

文档: https://docs.oracle.com/javase/7/docs/api/java/awt/Image.html#getScaledInstance(int,%20int,%20int)

我解决问题的方法:

  1. 将该行分成多个,使其看起来更好(不必要)。
  2. 添加额外的方法调用以缩放图像。
  3. 潜在解决方案:

        URL imageResource = getClass().getResource("/images/image1.jpg");
        ImageIcon imageIcon = new ImageIcon(imageResource);
        Image image = imageIcon.getImage();
    
        // This is the important line that scales the image up!
        Image scaledImage = image.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);
    
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Cursor cursor = toolkit.createCustomCursor(scaledImage, new Point(5, 5), "Custom Cursor");
        ageLabel.setCursor(cursor);
    

    后记:

    请务必将newWidthnewHeight替换为您想要的值。

    在你开始工作之后,我甚至会进一步将这些代码中的一部分提取到方法中。

    如果不进行编译,您可能需要稍微调整一下。

    我没有尝试过运行此代码,因此我不知道它是否有效。