Есть такой метод:
public void render(Graphics g) {
g.setColor(Color.red);
g.fillRect((int)x, (int)y, sizeX, sizeY);
}
И я хочу, чтобы вместо Color.red у меня стояла переменная color, к которой я могу получить доступ из любого другого класса и в любой момент изменить цвет.
Есть ли способ присвоить переменной метод Color.*?
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)).
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости