在Java(而不是OpenGL)中绘制基元的最简单方法

时间:2010-05-19 22:47:05

标签: java graphics

刚开始熟悉Java中的图形。

没有OpenGL(JOGL)在Java中绘制图元(线条,矩形)的最简单方法是什么?

寻找putPixellineTo等方法

UPD。
在哪里画画?帆布?面板?位图?

4 个答案:

答案 0 :(得分:5)

内置界面称为“Graphics2D”。

这是Java Graphics2D教程的链接:http://java.sun.com/docs/books/tutorial/2d/index.html

答案 1 :(得分:3)

您可以通过paint方法从任何AWT / Swing组件获取Graphics / Graphics2D实例。 JPanel可能是最好的,因为它非常适合swing并且是轻量级的,这意味着只创建了一个本机窗口 - 用于顶层窗口。 Swing组件也可以是双缓冲的,这意味着在传输到屏幕之前首先对屏幕外缓冲区进行绘制。这样可以提供更平滑的外观并避免在直接绘制到屏幕时可能发生的闪烁,这对于平滑动画尤为重要。

您可以专门绘制到之后可以使用的屏幕外缓冲区(“位图”),例如绘制图像以便以后保存为文件:

   BufferedImage offImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
   Grapics2D g2 = offImg.createGraphics();

    // .. optionally set attributes ..
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

答案 2 :(得分:1)

原始Java用户界面类称为AWT。这些是“重量级”组件,有时在不同系统(Windows,Mac,Unix)上的行为有所不同。这些组件很难用于制作GUI。

Sun开发了Swing,它是一组“轻量级”组件,尽可能在不同系统上运行相同。这些组件使GUI开发变得更加容易。

为了拥有图形画布,您可以从javax.swing.JFrame开始。您将子javax.swing.JPanel添加到JFrame。您可以通过覆盖paint方法在JPanel上绘制。

JPanel paint方法将java.awt.Graphics作为输入。您可以将Graphics转换为java.awt.Graphics2D。 Graphics2D的方法允许您绘制矩形,图像,文本,线条和任意多边形。

通过阅读Sun的Creating a GUI with JFC/Swing教程,您可以了解有关Swing的更多信息。您可以通过阅读Sun的2D Graphics教程了解有关2D图形的更多信息。有关我提到的Java类的更多详细信息,请参阅Javadoc

答案 3 :(得分:1)

我最近关于Java中水平滚动的问题包括一个小小的图形示例源代码,您可以将其用作工作的基础。有AWT和Swing实现。 AWT不支持水平滚动,所以我将使用swing。

不建议将这些作为最佳做法或任何内容,它们是我特定问题的快速演示,但它可能足以让您入门。

链接是How to use my trackpad for horizontal mousewheel scrolling in a Java AWT ScrollPane