В вашем вопросе есть обе темы: нарисуйте BufferedImage
(что сделано с Graphics
) и изображения макета.
Вы можете сделать свой собственный макет, но это может быть сложно.
Чтобы Swing сделал это за вас, используйте уже определенный макет (например, GridLayout
или FlowLayout
) и добавьте столько JPanel, сколько у вас есть BufferedImage
. Убедитесь, что ваш JPanel имеет фиксированный размер (см. setPreferredSize()
).
Пользовательское рисование выполняется с помощью Graphics/Graphics2D
API.
На каждом JComponent
вы можете получить базовый экземпляр Graphics
для настройки рендеринга. Нарисуйте каждое изображение BufferedImage в экземпляре graphics2D каждого JPanel.
Последний трюк состоит в нормализации размеров изображений и не забываете относительные отношения при вызове Graphics.drawImage
или обрезку изображений, если вы хотите соблюдать пропорции (это то, чего пользователи ожидают большую часть времени).