我的小程序代码有什么问题?

What is wrong with my applet code?

我正在关注 Youtube 上的小程序教程。我的代码看起来与教程的代码完全一样,但背景没有变成粉红色,Eclipse 告诉我 implements MouseListenerg2.draw(line); 中有错误我做错了什么? Click here 用于视频,这是我的代码:

package applets1;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;

import javax.swing.JApplet;

public class clean extends JApplet implements MouseListener{

public void start(){



}

public void init(){

    setBackground(Color.pink);
    addMouseListener(this);

}

public void paint(Graphics g){

    Graphics g2D = (Graphics2D) g;

    g.drawString("WAZZUP", 100, 90);
    g.drawRect(100, 100, 400, 400);

    Point2D.Double topLeft = new Point2D.Double(0.0, 25.0);
    Point2D.Double topRight = new Point2D.Double(100.0, 25.0);

    Line2D.Double line = new Line2D.Double(topLeft, topRight);

    g2D.draw(line);

}
}

编辑:g2D.draw(line); 处的错误表示 The method draw(Line2D.Double) is undefined for the type Graphics。我将 g2D.drawLine 更改为 g2D.draw 我还修复了 implements 错字。尽管没有错误并且其他一切正常,但背景仍然不是粉红色。我该怎么做才能修复粉红色和 g2D.draw?

您有一个印刷错误。 implements 未实现:

public class clean extends JApplet implements MouseListener{


您还用错误的类型声明了 g2D(GraphicsGraphics2D)。换句话说,而不是 Graphics g2D = (Graphics2D) g; 你需要使用 Graphics2D g2D = (Graphics2D) g;

完成上述更改后,您将能够使用各种 2D classes 作为参数调用 g2D.draw() 方法。


您还覆盖了 paint() 方法,但没有包含对 super.paint() 的调用 - 这应该是 paint() 方法中的第一行。执行此操作后,背景颜色应该正确呈现(因为它由基础 class、JApplet

处理