Java-如何绘制图形

Java-如何绘制图形,java,graphics,methods,drawing,abstract,Java,Graphics,Methods,Drawing,Abstract,我试着四处看看,但不懂如何用java绘制图形。让我举个例子 假设我想创建一个自定义方法来填充三角形,它以三个点作为参数。如果无法创建图形对象,如何使用metod fillPolygon(int[]xPoints,int[]yPoints,int-nPoints)?您需要在其上绘制曲面。通常,这可以通过创建自己的组件(例如,通过在swing中扩展JPanel)然后覆盖其中的各种图形更新方法来实现。要实现的主要相关功能是获取作为参数传入的图形对象 您通常还可以将图形对象强制转换为,这将为您提供更丰富

我试着四处看看,但不懂如何用java绘制图形。让我举个例子


假设我想创建一个自定义方法来填充三角形,它以三个点作为参数。如果无法创建图形对象,如何使用metod fillPolygon(int[]xPoints,int[]yPoints,int-nPoints)?

您需要在其上绘制曲面。通常,这可以通过创建自己的组件(例如,通过在swing中扩展
JPanel
)然后覆盖其中的各种图形更新方法来实现。要实现的主要相关功能是获取作为参数传入的图形对象


您通常还可以将
图形对象强制转换为,这将为您提供更丰富的绘图原语集。

您应该了解的第一件事(可能您已经知道)是
图形是您写入的地方,而不是您写入的地方。大部分时间都是在电脑屏幕上,比如使用Swing时

您也可以通过写入从以下位置获得的
图形
直接绘制空图像:

然后可以将该图像转换为任何图像格式

现在有一个愚蠢的例子,您不应该这样做(请参阅下面的真实Swing过程): 可以在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
       ...
   }
}
标准回转程序是直接写入屏幕:

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
       ...
   }
}
(挑剔者的评论:由于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
       ...
   }
}