Я не думаю, что это будет слишком тяжеловесно, поскольку Graphics2D
вашего JPanel
должно быть тем же, что и JLabel
, но с другими границами и смещениями.
Я имею в виду, что Swing не выделяет новый графический контекст, в котором вы можете отображать каждый элемент внутри иерархии объектов, но использует его с другими возможностями. Это не означает, что panel.getGraphics() == label.getGraphics()
, но и не совсем разные объекты.
В любом случае, если вам нужно много работать с анимацией, я бы посоветовал вам иметь собственный класс спрайтов.
class Sprite
{
Point2D position;
Rectangle2D size;
float rotation;
}
и обрабатывать все на том же уровне paintComponent
. Или, по крайней мере, я всегда поступал так, поскольку Java2D не похож на CoreAnimation, который предназначен для использования на уровне каждого слоя для перемещения/анимации контента.
person
Jack
schedule
18.06.2010