gpt4 book ai didi

java - 如何使用图形 'g'?

转载 作者:行者123 更新时间:2023-12-02 10:51:10 25 4
gpt4 key购买 nike

我正在参加一个教授 Java 的初学者类(class),在我们的阅读中,他们给出了一个关于使用图形来绘制项目的示例。因此,我将代码发布到我的 IDE 中并进行了尝试。

他们发布的代码应该创建一张外星人的脸

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import javax.swing.JComponent;

/*
A component that draws an alien face
*/
public class FaceComponent extends JComponent
{
public void paintComponent(Graphics g)
{
// Recover Graphics2D
Graphics2D g2 = (Graphics2D) g;

// Draw the head
Ellipse2D.Double head = new Ellipse2D.Double(5, 10, 100, 150);
g2.draw(head);

// Draw the eyes
g2.setColor(Color.GREEN);
Rectangle eye = new Rectangle(25, 70, 15, 15);
g2.fill(eye);
eye.translate(50, 0);
g2.fill(eye);

// Draw the mouth
Line2D.Double mouth = new Line2D.Double(30, 110, 80, 110);
g2.setColor(Color.RED);
g2.draw(mouth);

// Draw the greeting
g2.setColor(Color.BLUE);
g2.drawString("Hello, World!", 5, 175);
}
}

但是我不确定您是如何创建调用该函数的 Graphics 的。我原以为你会使用

Graphics g = new Graphics();

就像你如何调用一个新类一样,但这结果是一个错误。我尝试查看文档,但它似乎掩盖了您使用的“g”。

请帮我理解。

或者在这种情况下,这是一个我需要从另一个类调用的类,因为我正在扩展它?

最佳答案

paintComponent(Graphics g)是继承自JComponent的方法(注意paintComponent应该有@Override注解),它是GUI绘制系统的一部分。它是从 Java Swing 框架调用的,要求组件在屏幕上绘制自身。该方法之前的对象已经实例化并且可以使用。

您必须使用 JFrame/JPanel 等将组件添加到屏幕上,并使其可见才能看到其工作。

此外,由于您没有实现可测量的屏幕,因此您需要在布局内部添加一些空间才能查看结果(setMinimumSize() 启动后,frame.pack() 之前)。

关于java - 如何使用图形 'g'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52170503/

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