У меня есть ситуация, когда у меня есть группа JButtons на GridLayout.Мне нужно, чтобы каждый из JButton имел:
- фоновое изображение (но при необходимости сохранял возможность сохранять внешний вид кнопки по умолчанию)
- пользовательскую графику, нарисованную поверх других классов
У меня нет проблем с фоновым изображением, поскольку я использую setIcon (), но у меня возникают проблемы при рисовании объектов поверх фона.В какой-то момент я смог нарисовать поверх кнопки, но после нажатия кнопки рисунки исчезли.Как заставить кнопку сохранять это состояние рисования?
По сути, мне нужен способ, чтобы мои JButton имели открытые методы, которые позволили бы другому классу рисовать на нем что-либо, например:
public void drawSomething() {
Graphics g = this.getGraphics();
g.drawOval(3,2,2,2);
repaint();
}
или
public Graphics getGraphics() {
return this.getGraphics();
}
тогда другой класс мог бы сделать это:
button.getGraphics().drawSomething();
Последний - больше того, что я ищу, но первый также полезен.
Есть ли способ пойти по этому поводу?Кроме того, переопределение метода родительского класса paintComponent () не помогает, поскольку мне нужно, чтобы каждая кнопка имела разную графику.