Как присвоить переменной метод класса

253
24 февраля 2017, 00:31

Есть такой метод:

public void render(Graphics g) {
    g.setColor(Color.red);
    g.fillRect((int)x, (int)y, sizeX, sizeY);
}

И я хочу, чтобы вместо Color.red у меня стояла переменная color, к которой я могу получить доступ из любого другого класса и в любой момент изменить цвет. Есть ли способ присвоить переменной метод Color.*?

Answer 1

Color.red - это не метод, а константа в файле Color. Выглядит она так:

public final static Color red = new Color(255, 0, 0);

Соответственно, достаточно просто хранить текущий цвет в поле типа Color.

Поэтому добавляем в класс публичный метод для установки цвета, храним установленный цвет в поле и используем его при отрисовке.

В итоге класс выглядит так:

public class Entity
{
    private Color color = Color.green;
    public void setColor(Color color)
    {
        this.color = color;
    }
    public void render(Graphics g)
    {
        g.setColor(color);
    }
}

А пользоваться им можно так:

Entity entity = new Entity();
entity.setColor(Color.red);
entity.render();
Color newColor = new Color(200, 200, 200);
entity.setColor(newColor);
entity.render();

Используя как "стандартные" цвета (например, Color.red), так и созданные вручную (например, new Color(200, 200, 200)).

READ ALSO
Воспроизведение видео во фрагменте

Воспроизведение видео во фрагменте

Здравствуйтевозможно ли во фрагменте воспроизвести видео на surpfaceview?у меня приходт исключение nullpointer в mediaplayer setdata хотя в активити работает

301
галерея изображений в файловой системе java android

галерея изображений в файловой системе java android

Привет всем, я делал некое подобие файлового менеджера и хотел сделать так, чтобы все изображения просматривались как небольшие иконки вот...

211
Google аутентификация

Google аутентификация

Делаю аутентификацию для гугла через firebase, после выбора email ничего не происходитВ консоли 2 ошибки:

205
Автозапуск java программы на raspberry-pi

Автозапуск java программы на raspberry-pi

Всем приветСкажите пожалуйста как сделать такое устройство (за основу взято raspberry либо gallileo) или прошить, чтобы при включении питания, включалась...

280