Greenfoot и родные классы Java - PullRequest
0 голосов
/ 20 февраля 2012

Я пытаюсь импортировать 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);
   }
}

1 Ответ

1 голос
/ 20 февраля 2012

paintComponent() - это метод в Swing, т.е. классы в пакете 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 объясняет это.

...