gpt4 book ai didi

java - 如何创建用于绘制多边形的图形对象?

转载 作者:行者123 更新时间:2023-11-29 03:32:24 24 4
gpt4 key购买 nike

我需要绘制一个多边形 - 通过连接连续的点,然后将最后一个点连接到第一个点。

为了这个目标,我尝试使用 drawPolygon(xPoints, yPoints, nPoints) .在我看来,这是实现这一目标的更方便的方法

但是 Graphics 类是抽象类,我不能创建实例对象并调用 drawPolygon() 方法吗?

代码:

public void draw() {
Graphics g = null;
int xPoints [] = new int[pointsList.size()];
int yPoints [] = new int[pointsList.size()];
int nPoints = pointsList.size();

for (int i = 0; i < pointsList.size(); i++) {
xPoints [i] = (int) pointsList.get(i).getX();
yPoints [i] = (int) pointsList.get(i).getY();
}

g.drawPolygon(xPoints, yPoints, nPoints);
}
  • 我们能否以任何方式避免调用此方法?
  • 也许存在其他一些方法来实现这个目标?

最佳答案

开发人员将 Graphics 抽象化的原因是图形对象需要来自某个地方。例如,JPanel 或 JFrame 对象有一个与之关联的图形对象,因为它们将可视区域呈现到屏幕上。图形对象通常使用 getGraphics() 方法分配。这是一个简单的例子:

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;

public class Polygon extends JFrame {
public static void main(String args[]){
Test a = new Test();
a.drawAPolygon();
}


public Polygon(){
setSize(300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

void drawAPolygon(int[] xPoints, int[] yPoints, int numPoints){
Graphics g = getGraphics();
g.drawPolygon(xPoints, yPoints, numPoints);
}
//@override
public void paint(Graphics g){
super.paint(g);
//could also do painting in here.
}
}

关于java - 如何创建用于绘制多边形的图形对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com