Как переопределить метод в методе с помощью лямбда выражения?
Ситуация следующая: делаю для свинга метод для отображения произвольных схем с помощью Graphics2D. Проблема в том, что нужно в методе сделать переопределение метода painComponent(Graphics G).
Переопределенный метод в виде лямбды должен выглядеть следующим образом:
@Override
public void paintComponent(Graphics G){
Graphics g2d = new Graphics2D();
g2d.fillOval(...);
g2d.dispose();
// ну и небольшое продолжение снизу
}
Как в итоге переопределить данный метод с помощью лямбды, или же есть иной путь?
Ответы (1 шт):
Автор решения: Zhenyria
→ Ссылка
Вы можете сделать несколько лямбд-выражений вот так:
private Consumer cons =
(g) -> {
Graphics g2d = new Graphics2D();
g2d.fillOval(...);
g2d.dispose();
....
}
а потом, например, сделать в методе блок switch с выбором разных Consumer в зависимости от условия:
@Override
public void paintComponent(Graphics g){
switch (//нужное вам условие) {
case //условие 1:
cons.accept(g);
break;
//далее...
}
}
Либо воспользуйтесь паттерном Фабрика.