Java中的2D图形交互

时间:2013-11-05 21:46:08

标签: java graphics

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

example problem

让我们说在这个应用程序中,只要用户将球拖到目标盒内,用户就会将球拖放到目标对象(球不会掉落,用户将对象拖放到目标对象内部);

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

  • 设置将自动重启,目标将更远 以前的职位。

在Stack Over Flow中,人们提到了很多不同的框架,比如;

  1. JavaFX的
  2. Java 2d图形库(在这种交互中使用2d图形是否方便?)
  3. 处理(我认为这个更像是用于可视化信息)
  4. Prefuse(更多关于可视化)
  5. Slick2D
  6. G
  7. Piccolo2d
  8. 我知道Stack Over会问这类问题,但我对图书馆的限制知之甚少。因此,为了开发这种应用,我找不到哪一个最适合我学习? (上面只是一个例子)

3 个答案:

答案 0 :(得分:0)

如果您希望执行涉及关键侦听器,鼠标点击,GUI等的操作,您需要查看Swing API

为了完成这项工作,它几乎包含了你需要的一切。

当然还有其他解决方案,但是如果您正在寻找一个开箱即用的解决方案,那么可能就是这样。

答案 1 :(得分:0)

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

public void paint(Graphics g) {

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

}

查看教程here

对于碰撞检测,您可以使用我的库中的Instance类,这是一项正在进行的工作。还找到right here

答案 2 :(得分:0)

您的选择可能很大程度上取决于您已经拥有多少经验。如果你想要简单但有效的东西,我建议Processing用于你描述的功能。

我不同意Processing更适合可视化。事实上,对于想要编写可视化界面的初学者来说,它是一个很棒的库。它的2D实现是基于Java 2D图形库构建的,但它也提供了鼠标和键盘的交互(比你从AWT或Swing获得的更简单,如果你已经习惯了其中一个,那就很不幸了。) / p>

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