powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Черные рамки при сохранении диалога в JPG
7 сообщений из 7, страница 1 из 1
Черные рамки при сохранении диалога в JPG
    #38300546
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел довольно простенький код, который вроде нормально работает:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public void saveComponentAsJPEG(Component myComponent, String filename) {
        Dimension size = myComponent.getSize();
        BufferedImage myImage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = myImage.createGraphics();
        myComponent.paint(g2);
        try {
            OutputStream out = new FileOutputStream(filename);
            ImageIO.write(myImage, "jpg", out);
            out.close();
        } catch (Exception e) {
        }
    }



В качестве myComponent выступает созданный JDialog. У сохраненной картинки вместо рамок и шапки - чернота. В принципе нестрашно, но нельзя ли как-то это убрать? Еще пробовал через использование класса Robot, но там другая беда - сначала перед сохранением вызывается диалог выбора директория, он тоже копируется.
...
Рейтинг: 0 / 0
Черные рамки при сохранении диалога в JPG
    #38300570
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это нативный envelope его нельзя отрисовать средствами Swing. Можно создать фрейм с setUndecorated(true).
Проблему с роботом не понял. Вызовите робота до появления диалога.
...
Рейтинг: 0 / 0
Черные рамки при сохранении диалога в JPG
    #38301184
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
robot отрабатывает нормально, но мне нужно сохранять картинку уже после закрытия диалога - там надо выбрать каталог сохранения. Когда я это делаю, происходит мгновенная "съемка" и закрывающийся диалог успевает частично запечатлеться, это видно на изображении:

http://savepic.org/3697679.jpg

Возможным решением было бы дождаться, пока этот диалог совсем не исчезнет и уже тогда запускать процедуру сохранения, но я без понятия как это сделать. Могли бы Вы также поподробнее объяснить про setUndecorated ? Натыкался на что-то похожее, попробовал - почему-то не получилось.
...
Рейтинг: 0 / 0
Черные рамки при сохранении диалога в JPG
    #38301193
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите ваш код с диалогом и роботом.
...
Рейтинг: 0 / 0
Черные рамки при сохранении диалога в JPG
    #38301197
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
setUndecorated надо вызывать у корневого фрейма ещё до его появления.
Тогда Swing не будет использовать нативный envelope для окон. Вместо этого будет сам рисовать шапку и border.
...
Рейтинг: 0 / 0
Черные рамки при сохранении диалога в JPG
    #38301201
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А действительно ли вам нужно окно целиком?
Вместо
Код: java
1.
saveComponentAsJPEG(dialog, file);

используете
Код: java
1.
saveComponentAsJPEG(dialog.getContentPane(), file);
...
Рейтинг: 0 / 0
Черные рамки при сохранении диалога в JPG
    #38301222
Полуламер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczА действительно ли вам нужно окно целиком?
Вместо
Код: java
1.
saveComponentAsJPEG(dialog, file);

используете
Код: java
1.
saveComponentAsJPEG(dialog.getContentPane(), file);


Совершенно не нужна мне шапка этого окна. А Вам в который раз уже большое спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Черные рамки при сохранении диалога в JPG
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]