gpt4 book ai didi

java - 如何在 Java 中初始化 Graphics 对象?

转载 作者:搜寻专家 更新时间:2023-11-01 01:09:29 24 4
gpt4 key购买 nike

这是代码:

import java.awt.*;
import java.applet.*;

public class anim1 extends Applet{

public void paint (Graphics g)
{
g.drawString("",400,300);
}

public static void main(String ad[])
{
anim1 a=new anim1();
Graphics g1;
a.paint(g1);
}
}

它说 g1 没有初始化。但是如何初始化一个抽象类呢?

最佳答案

这里有两个问题 1:

    Graphics g1;
a.paint(g1);

并且您收到 G1 未初始化的错误。那是因为变量 g1 从未设置为任何值,这会导致编译错误。要编译代码,您至少需要这样做:

    Graphics g1 = null;
a.paint(g1);

但是,这显然不会对您有太大帮助。当您尝试运行您的代码时,您将得到一个 NullPointerException。为了实际绘制图形,您需要这样做:

    anim1 a=new anim1();
Graphics g1 = anim1.getGraphics();
a.paint(g1);

但是,这仍然行不通,因为 Anim1 不会出现在屏幕上。为了让它出现在屏幕上,你需要像这样的东西:

import java.awt.*;
import javax.swing.*;
import java.applet.*;

public class So1 extends Applet{

public void paint (Graphics g)
{
g.drawString("hello",40,30);
}

public static void main(String ad[])
{

JFrame jp1 = new JFrame();
So1 a=new So1 ();
jp1.getContentPane().add(a, BorderLayout.CENTER);
jp1.setSize(new Dimension(500,500));
jp1.setVisible(true);

}
}

注意,我们实际上并没有自己调用 paint() 函数。这由 awt 处理,它实际上选择图形上下文,并为我们调用我们的绘画函数。不过,如果你愿意,你可以传入任何你想要的图形对象并让它在上面绘制。 (所以如果你想将你的组件绘制到图像上,你可以这样做)

(注意,我将类名从 anim1 更改为 So1)

关于java - 如何在 Java 中初始化 Graphics 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1965347/

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