0

我正在尝试导入 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);
   }
}
4

1 回答 1

1

paintComponent()是 Swing 中的一个方法——即 package 中的类javax.swing。中的类java.awt没有这样的方法。它是在 中引入的javax.swing.JComponent,所以所有的子类JComponent——即JButton,JPanel等——都有它。

要绘制 Greenfoot Actor,您需要创建并返回一个GreenfootImage对象。这是它的 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 文档解释了这一点。

于 2012-02-20T04:40:28.393 回答