Cursorオブジェクトの生成

編集者:Terai Atsuhiro~

作成日:2005-01-24
更新日:2021-06-03 (木) 11:50:37
  • category: swing folder: CustomCursor title: Cursorオブジェクトの生成 tags: [Cursor, BufferedImage, ImageIcon, JComponent] author: aterai pubdate: 2005-01-24T03:58:31+09:00 description: BufferedImageからカーソルオブジェクトを作成し、これをコンポーネントに設定します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTKTOEY7FI/AAAAAAAAAVw/OeBJRlIWHsQ/s800/CustomCursor.png

概要

BufferedImageからカーソルオブジェクトを作成し、これをコンポーネントに設定します。

概要

新しいカスタムカーソルオブジェクトを作成します。

サンプルコード

#spanend
#spanadd
BufferedImage bi = new BufferedImage(32, 32, BufferedImage.TYPE_INT_ARGB);
#spanend
#spanadd
Graphics2D g2 = bi.createGraphics();
#spanend
#spanadd
g2.setPaint(Color.RED);
#spanend
#spanadd
g2.drawOval(8, 8, 16, 16);
#spanend
#spanadd
g2.dispose();
#spanend
#spanadd
button.setCursor(getToolkit().createCustomCursor(bi, new Point(16, 16), "oval"));
#spanend
#spanadd
View in GitHub: Java, Kotlin

サンプルコード

BufferedImage bi2 = new BufferedImage(
                      32, 32, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2d2 = bi2.createGraphics();
g2d2.setPaint(Color.red);
g2d2.drawOval(8, 8, 16, 16);
g2d2.dispose();
lbl2.setCursor(getToolkit().createCustomCursor(
                               bi2,new Point(16,16),"oval"));

解説

  • サイズが32x32pxBufferedImageからToolkit#createCustomCursor(...)メソッドを使用してカーソルオブジェクトを作成
    • ホットスポットはそのBufferedImageの中心に設定
  • String: BufferedImageに文字を描画
  • drawOval: BufferedImageに円を描画
  • paintIcon: BufferedImageIconを描画

解説

Toolkit#createCustomCursorでカーソルオブジェクトを作成します。上記のサンプルでは、32*32のバッファの中心に、直径16ptの円をかき、中心がカーソルのホットスポットとなるようなカーソルを作っています。

参考リンク

コメント

コメント