0

我在为 AP 计算机科学做的 bluej 实验室遇到了一些麻烦。

我应该使用 ASCII 字符制作美国国旗。
我有一个我老师给我们的骨架代码,但我们应该填写它。我设法制作了程序,但我无法测试它,因为跑步者(给我们完全填写)正在抗议我的getContentPane().add(new StarsAndStripesLab()); 它说:

No suitable method found for add(StarsAndStripesLab)

method java.awt.Container.add(java.awt.Component) is not applicable (actual argument StarsAndStripesLab cannot be converted to java.awp.Component by method invocation conversion)

method java.awp.Component.add(java.awp.PopupMenu) is not applicable (actual argument StarsAndStripesLab cannot be converted to java.awt.PopupMenu by method invocation conversion)

这是我的跑步者和实验室的完整代码:

实验室:

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Canvas;
import java.awt.Font;
import static java.lang.System.*;

public class StarsAndStripesLab
{
   public StarsAndStripesLab()
   {
       out.println("StarsAndStripesLab");
       printTwoBlankLines();
   }

   public void printTwentyStars()
   {
      out.println("* * * * * *");
      out.println(" * * * * * ");
      out.println("* * * * * *");
      out.println(" * * * * * ");
      out.println("* * * * * *");
      out.println(" * * * * * ");
      out.println("* * * * * *");
      out.println(" * * * * * ");
      out.println("* * * * * *");
   }

   public void printTwentyDashes()
   {
       out.println("--------------------");
   }

   public void printTwoBlankLines()
   {
       out.println("\n\n");
   }

   public void printASmallBox()
   {    
       out.println("|--------------|");
       out.println("|              |");
       out.println("|              |");
       out.println("|              |");
       out.println("|--------------|");
   }

   public void printABigBox()
   {    
       out.println("|-----------------------------|");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|                             |");
       out.println("|-----------------------------|");
   }   
}

这是跑步者(我在给我带来麻烦的地方加上星号,因为我无法突出显示):

import javax.swing.JFrame;



public class StarsAndStripesLabRunner extends JFrame

{

 private static final int WIDTH = 800;

 private static final int HEIGHT = 600;

    public StarsAndStripesLabRunner()
    {
        super("Keelen Berkenkotter");
        setSize(WIDTH,HEIGHT);

        ***getContentPane().add(new StarsAndStripesLab());***

        setVisible(true);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main( String args[] )
    {
        StarsAndStripesLabRunner stars = new StarsAndStripesLabRunner();
    }
}

任何帮助表示赞赏。提前致谢。

——基伦·伯肯科特

4

1 回答 1

0

我认为您要么使用了错误的运行器代码,要么误解了任务。您的代码正在终端上打印字符,但运行器代码是一个设置窗口的图形程序。

您要么必须使用调用所有方法的运行器代码,例如:

public class StarsAndStripesLabRunner {
    public static void main( String args[] )
    {
        StarsAndStripesLab stars = new StarsAndStripesLab();
        stars.printTwentyStars(); // and all the other methods in correct order
    }
}

或者您必须编写一个以图形方式显示标志的程序。但我认为是前者,因为你说你必须使用 ASCII 字符。

于 2013-11-24T21:59:07.630 回答