我正在尝试导入java.awt。*;进入Greenfoot中的类,但是当我调用方法paintComponent()时,出现错误消息,指出未找到该方法。

Greenfoot网站指出,必须手动导入本机类(http://www.greenfoot.org/doc/native_loader),并且每个本机类都必须包含在我的方案(项目)中。

该网站提供了指向本机类加载器的链接,但未提供包含java.awt类的库的链接。

如果有人可以告诉我在哪里可以下载该库,或者让我知道我是否对Java完全陌生,那么这将对您有很大的帮助。

谢谢

import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.*;
import javax.swing.*;

public class Ground extends Actor
{
   public void act() {
      // Add your action code here.
   }

   public void paintComponent(Graphics z) {
      super.paintComponent(z);

      z.setColor(Color.BLUE);
      z.fillRect(0, 0, 100, 100);
   }
}

最佳答案

paintComponent()是Swing中的一种方法-即包javax.swing中的类。 java.awt中的类没有这种方法。它是在javax.swing.JComponent中引入的,因此JComponent的所有子类(即JButtonJPanel等)都具有它。

要绘制Greenfoot Actor,请创建并返回一个GreenfootImage对象。 Here is its API.我认为与上述正确的等同是

public class Ground extends Actor {
    public GreenfootImage getImage(){
        GreenfootImage image = new GreenfootImage(100, 100);
        image.setColor(Color.BLUE);
        image.fillRect(0, 0, 100, 100);
        return image;
    }
}


我不知道getImage()被调用的频率。也许Greenfoot文档解释了这一点。

09-05 13:55