1

このチュートリアルを使用してカスタムカーソルを作成しました。問題は、それが変わるとすぐに、私は何も得られないということです。カーソルは見えません。そこにある鉛筆の画像を試してみました。すぐにペイントで描いたカスタム画像ですが、すべてうまくいきません。

    public Cursor stoneCursor;
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Image image = toolkit.getImage("pencil.gif");
    Point hotspot = new Point(0,0);
    stoneCursor = toolkit.createCustomCursor(image, hotspot, "Stone");
    getContentPane().setCursor(stoneCursor);

これはもちろんJFrameの中にあります。

"。表示する画像が無効な場合、カーソルは非表示になり(完全に透明になります)、ホットスポットは(0、0)に設定されます。" これはcreateCustomCursor()のjavadocに記述されていますが、pencil.gifで機能するはずですか?

事前に回答ありがとうございます!:)

4

2 に答える 2

5

あなたのコードは私のために働きます。ツールキットが画像を見つけられないため、表示できないに違いありません。これは、あなたと同じコードを使用する完全な作業例です (ただし、URL からパブリック イメージを使用しました)。

import java.awt.Cursor;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class TestCursor {

    protected void initUI() throws MalformedURLException {
        JFrame frame = new JFrame("Test text pane");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Image image = toolkit.getImage(new URL("http://fc03.deviantart.net/fs71/f/2010/094/7/9/Kalyan_hand_cursor_1_by_Zanten.png"));
        Point hotspot = new Point(0, 0);
        Cursor cursor = toolkit.createCustomCursor(image, hotspot, "Stone");
        frame.setCursor(cursor);

        frame.setSize(600, 400);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                try {
                    new TestCursor().initUI();
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }
}
于 2012-07-03T12:08:28.623 に答える
1

Java 1.5 を使用している場合は、この SO の質問が興味深いかもしれません。新しいものを使用する場合、このコードは私にも完全に機能します(試してみました)。画像がそこにないか、正しくアクセスできない場合、私はあなたと同じ効果を経験します.

イメージが正しくロードされていることを確認してください。

于 2012-07-03T12:12:14.287 に答える