Конвертировать JPanel в png или другой файл изображения - PullRequest
3 голосов
/ 08 июня 2011

У меня есть JPanel, который состоит из множества JLabels. Так что краски вообще нет, просто JLabels с разными цветами фона и тому подобное. JPanel видна.

Как я могу преобразовать этот JPanel в файл изображения? Файл изображения будет изображением JPanel в точности так, как он отображается на экране.

(В идеале программа должна создать файл .png и сохранить его в той же папке, в которой находится программа, или даже в другой папке, выбранной пользователем.)

Любой совет будет оценен. Спасибо!

---- Это снова Чери, незарегистрированная, поэтому я не мог вернуться в свой аккаунт, чтобы выбрать ответ Стаса в качестве ответа. Вот почему я не отвечаю ... в любом случае, спасибо за вашу помощь. Cherie

Ответы [ 3 ]

4 голосов
/ 08 июня 2011

Изображение на экране выберет лучший способ создания изображения.

BufferedImage bi = ScreenImage.createImage(panel);
ScreenImage.writeImage(bi, "panel.png");
3 голосов
/ 08 июня 2011

вот так:

BufferedImage image = new Robot().createScreenCapture(new Rectangle(panel.getLocationOnScreen().x, panel.getLocationOnScreen().y, panel.getWidth(), panel.getHeight()));
ImageIO.write(image, "png", file);

Вы создаете файл наподобие этого:

File file = new File("fileName.png");
if (!file.exists())file.createNewFile();

Пожалуйста, выберите правильный ответ, если я ответил на ваш вопрос:)

2 голосов
/ 08 июня 2011

Классы java.awt.Robot могут создавать экранный дамп, который вы можете затем поместить туда, где он вам нужен, для дальнейшего использования.

...