gpt4 book ai didi

Java 绘制形状错误

转载 作者:行者123 更新时间:2023-11-30 04:27:46 25 4
gpt4 key购买 nike

我必须使用小程序编写一个程序,它应该有 3 个按钮线、矩形、圆形。单击它们后,应绘制所需的形状。

我编写了以下代码,但显示图形未初始化的错误。现在该怎么办?

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Drawshapes extends Applet implements ActionListener
{

Button line,rect,circle;
public void init()
{

line=new Button("Line");

rect=new Button("Rectangle");
circle=new Button("Circle");

add(line);
add(circle);
add(rect);

line.addActionListener(this);
rect.addActionListener(this);
circle.addActionListener(this);
}

public void paint(Graphics g)
{
}

public void actionPerformed(ActionEvent ae)
{

Graphics g;
if(ae.getSource()==line)
{
g.drawLine(0,100,100,10);
}
else if(ae.getSource()==rect)
{
g.drawRect(10,10,60,50);
}
else
{
g.drawOval(10,10,50,50);
}
}
}

最佳答案

与所有局部变量一样,Graphics g 需要初始化。但是,从 ActionListener 进行自定义绘制是一个坏主意。在已正确实例化的 paint 方法中使用 Graphics 对象。

ActionListener中设置一个标志,然后调用repaint:

例如在 ActionListener 中的行:

drawLine = true;
repaint();

绘制:

@Override
public void paint(Graphics g) {
super.paint(g);
if (drawLine) {
g.drawLine(0, 100, 100, 10);
} else if (drawRect) {
g.drawRect(10, 10, 60, 50);
} else {
g.drawOval(10, 10, 50, 50);
}
}

关于Java 绘制形状错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15443175/

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