我正在Youtube上学习小程序教程。我的代码看起来和教程中的完全一样,但背景没有变为粉红色,Eclipse告诉我implements MouseListener
和g2.draw(line);
中有错误。我做错了什么?点击这里观看视频,这是我的代码:
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{
此外,您已经用错误的类型(Graphics
与Graphics2D
)声明了g2D。换句话说您需要使用的Graphics g2D = (Graphics2D) g;
Graphics2D g2D = (Graphics2D) g;
一旦进行了上述更改,就可以使用各种2D类作为参数来调用g2D.draw()
方法。
此外,您已经重写了paint()
方法,但没有包含对super.paint()
的调用——这应该是paint()
方法中的第一行。完成此操作后,背景颜色应正确呈现(因为它由基类JApplet
处理)