爪哇 - 如何绘制图形

我试着环顾四周,但不知道如何绘制图形在java中。 让我做出了榜样。

比方说,我想创建一个自定义的方法来填充一个三角形,它有三个点作为参数。 我如何使用梅托德fillPolygon(INT [] xPoints,INT [] ypoints中,诠释nPoints)如果我不能创建一个Graphics对象?

--------------解决方案-------------

你需要一个表面上绘制。 一般来说,这可以通过创建自己的组件(通过扩展,例如做JPanel中摆动),然后覆盖各种绘图更新方法那里。 要实现的主要相关的是它的paintComponent得到传过来的参数的图形对象。

通常,您也可以投你的Graphics对象到Graphics2D的,它给你一个更丰富的绘图原语。

你应该了解的第一件事情(也许你已经知道了)是Graphics就是你写不出来,不是你来自哪里写的。 这是你的电脑屏幕的大部分时间,例如,当您使用Swing。

您也可以直接通过在写画上一个空的图像Graphics从BufferedImage.getGraphics获得:

Image myImage = new BufferedImage(...);
Graphics graphImage = myImage.getGraphics();
graphImage.setColor(Color.BLUE);
graphImage.fillPolygon(...); // set some blue pixels inside the BufferedImage

然后,您可以说图像转换成任何图像格式。

现在愚蠢的例子,你不应该这样做(见下文为真正摆步骤):你可以在一个Swing组件绘制图像

public class MyJPanel extends Panel {

@Override
public void paintComponent(Graphics g) { // g is your screen
...
g.drawImage(myImage,...); // draw your image to the screen
...
}
}

该标准Swing程序是直接写屏:

public class MyJPanel extends Panel {

@Override
public void paintComponent(Graphics g) { // g is your screen
...
g.fillPolygon(...); // directly writes your pixels to the screen buffer
...
}
}

(注释为nitpickers:因为Swing是双缓冲的,你直接写屏幕缓冲区这是不完全正确。)

分类:java的 时间:2014-05-26 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.738 (s). 10 q(s)