1

我想在 java 中创建小型应用程序,我将与图形元素进行交互。我做了这个例子来解释我的问题以及我提到的那种互动。

示例问题

假设在这个应用程序中,只要用户将球拖到目标框内,用户就会将球拖放到目标对象(球不会落下,用户会将对象拖放到目标对象的内部);

  • 盒子的颜色会改变,我会增加一个计数器。

  • 设置将自行重新启动,并且目标将离之前的位置更远。

在 Stack Over Flow 中,人们提到了许多不同的框架,例如:

  1. JavaFX
  2. Java 2d 图形库(使用 2d 图形进行这种交互是否方便?)
  3. 处理(我认为这个更用于可视化信息)
  4. Prefuse(还有关于可视化的更多信息)
  5. Slick2D
  6. G
  7. Piccolo2d

我知道 Stack Over 中会提出这类问题,但我对库的限制了解不多。因此,为了开发此类应用程序,我找不到最适合我学习的一个?(以上只是一个例子)

4

3 回答 3

0

如果您希望做一些涉及关键侦听器、鼠标点击、GUI 等的事情,您想看看Swing API

它几乎拥有完成这项工作所需的一切。

当然还有其他解决方案,但如果您正在寻找开箱即用的支持,这可能是您的最佳选择。

于 2013-11-05T21:48:42.093 回答
0

实际上,您不必使用任何这些库来执行任何操作。您正在寻找的是一个名为Graphics它的类,它与 Swing 相关联,通常通过绘画方法使用。

public void paint(Graphics g) {

    super.paint(g);
    // do graphical stuff here
    repaint();

}

在这里查看教程。

对于您的碰撞检测,您可以使用Instance我的库中正在进行的类。也在这里找到。

于 2013-11-05T22:05:35.463 回答
0

您的选择可能在很大程度上取决于您已经拥有多少经验。如果您想要一些简单但有效的东西,我建议您为您描述的功能进行处理

我不同意 Processing 更适合可视化。事实上,对于想要编写可视化界面的初学者来说,它是一个很棒的库。它的 2D 实现建立在 Java 2D 图形库的基础上,但它也提供了鼠标和键盘交互(与您从 AWT 或 Swing 获得的内容相比有所简化,如果您已经习惯了其中的一种,这只是不幸的)。

如果您查看一些处理示例,您会发现按照您的描述进行操作非常容易。以下是我在简短搜索中发现的一些似乎相关的内容:

于 2013-11-06T00:22:51.153 回答