【问题标题】:How to change the cursor image in Java AWT and/or Swing?如何更改 Java AWT 和/或 Swing 中的光标图像?
【发布时间】:2012-01-19 02:12:17
【问题描述】:

我正在制作一个简单的图形编辑器(即绘图程序)。我不打算做任何花哨的事情,但我确实希望我的程序在进入“Paint Panel”时将鼠标光标更改为“+”或“O”之类的东西。就像在 Photoshop 或 GIMP 中一样。

我该怎么做?我在 AWT / Swing 线程中找不到有关如何更改鼠标光标的任何内容。

【问题讨论】:

标签: java swing graphics cursor awt


【解决方案1】:

以防万一有人想要比任何默认光标更“花哨”的东西:可以创建一个自定义光标(如果 Toolkit 支持它)显示任意自定义图像。一个粗略的(没有闪亮的视觉效果)示例:

    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension dim = kit.getBestCursorSize(48, 48);
    BufferedImage buffered = GraphicsUtilities.createCompatibleTranslucentImage(dim.width, dim.height);
    Shape circle = new Ellipse2D.Float(0, 0, dim.width - 1, dim.height - 1);
    Graphics2D g = buffered.createGraphics();
    g.setColor(Color.BLUE);
    g.draw(circle);
    g.setColor(Color.RED);
    int centerX = (dim.width - 1) /2;
    int centerY = (dim.height - 1) / 2;
    g.drawLine(centerX, 0, centerX, dim.height - 1);
    g.drawLine(0, centerY, dim.height - 1, centerY);
    g.dispose();
    Cursor cursor = kit.createCustomCursor(buffered, new Point(centerX, centerY), "myCursor");

【讨论】:

  • 不错!但这会返回 java.awt.Cursor,而不是 JavaFX。
  • 好吧,问题是关于awt/swing,或者不是:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多