我的applet代码出了什么问题?

时间:2015-03-31 01:21:14

标签: java graphics applet graphics2d

我正在关注Youtube上的applet教程。我的代码与教程的内容完全相同,但背景并没有变成粉红色,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

1 个答案:

答案 0 :(得分:1)

你有印刷错误。 implements没有实现:

public class clean extends JApplet implements MouseListener{


此外,您已声明g2D类型错误(Graphics vs Graphics2D)。换句话说,而不是 您需要使用Graphics g2D = (Graphics2D) g; Graphics2D g2D = (Graphics2D) g;

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


此外,您已覆盖了paint()方法但尚未包含对super.paint()的调用 - 这应该是您paint()方法中的第一行。执行此操作后,应正确呈现背景颜色(因为它由基类JApplet处理)