3

我正在编写的程序有问题——这是一个 APCS A 类,所以有一个 APCS.lib——它包括程序中使用的 DrawingTool 类。我遇到了 import java.awt.Color 语句的问题:

有一个为整个程序执行的驱动程序,但我的问题是在 import java.awt.Color; 和第 33 行-pencil.SetColor(Color, red); . 不确定我的 drjava 没有检测到 java.awt.color 导入并且仍然给我一个“找不到符号/变量错误”。程序画了一栋房子。

//Name£∫ Allen Li
//Date: Monday, September 9th, 2013
//Purpose: Using apcslib to draw a house on with a piece of paper and pencil. 

import apcslib.*;
import java.awt.Color; 
public class DrawHouse{

  private DrawingTool pencil;
    private SketchPad paper;

 /**
  *  Basic constructor for DrawHouse.  
  *  Instantiates paper and pencil to basic
  *  values.
  */
 public DrawHouse(){
  paper = new SketchPad(300, 400);
     pencil = new DrawingTool(paper);
 }

   /**
     *  The draw method for the DrawHouse class.  
     *  This method will run all of the
     *  commands necessary to draw the house.
     *
     */

   public void draw(){

     // draw the main house
     pencil.setWidth(3); 
     pencil.setColor(Color, red); 
     pencil.down(); 
     pencil.move(-100,0); 
     pencil.move(-100,100); 
     pencil.move(100,100); 
     pencil.move(100,0); 
     pencil.move(0,0); 

     //door

     pencil.up(); 
     pencil.move(-20,0);
     pencil.down(); 
     pencil.move(-20,50); 
     pencil.move(20,50); 
     pencil.move(20,0); 

     //roof
     pencil.up(); 
     pencil.move(-100,100); 
     pencil.down(); 
     pencil.move(0,150); 
     pencil.move(100,100); 


     //window left
     pencil.up(); 
     pencil.move(-70, 60); 
     pencil.down(); 
     pencil.move(-40, 60); 
     pencil.move(-40, 90); 
     pencil.move(-70, 90); 
     pencil.move(-70, 60); 

     //window right
     pencil.up(); 
     pencil.move(70,60); 
     pencil.down(); 
     pencil.move(40,60); 
     pencil.move(40,90); 
     pencil.move(70,90); 
     pencil.move(70,60); 
     pencil.up();





   }
}
4

3 回答 3

2

java.awt.Color 有一个常量red。它应该是

pencil.setColor(Color.red);

在第 33 行。看看它的javadocColor

于 2013-09-10T17:25:25.467 回答
1

你有一个语法错误pencil.setColor(Color, red);

这一行应该是: pencil.setColor(Color.RED);

顺便说一句,欢迎来到 SO!

于 2013-09-10T17:26:05.570 回答
0

要详细说明给定的答案:

setColor 方法需要一个Color对象作为其参数。你不能传递它Color,因为那是一个类,你不能传递它red,因为这对编译器没有任何意义(它试图找到一个名为 的变量red)。

诀窍是访问静态变量Color.redColor.RED(它是一个Color对象),并将其传递给方法,就像其他答案所做的那样。正如另一个答案中提到的,javadocs forColor可能会在这里为您提供帮助。

于 2013-09-10T21:18:57.287 回答