我正在关注Youtube上的applet教程。我的代码与教程的内容完全相同,但背景并没有变成粉红色,Eclipse告诉我implements MouseListener
和g2.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
?
答案 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
处理)