подскажите как JPanel сохранить как картинку(распечатать)
От: a_g_barnaul Россия  
Дата: 01.06.05 04:16
Оценка:
Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?
Re: подскажите как JPanel сохранить как картинку(распечатать
От: bolshik Россия http://denis-zhdanov.blogspot.com/
Дата: 01.06.05 06:02
Оценка:
Здравствуйте, a_g_barnaul, Вы писали:

__>Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?


java.awt.Robot позволяет делать скриншоты (метод createScreenCapture()).
http://denis-zhdanov.blogspot.com
Re[2]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 07:01
Оценка:
Здравствуйте, bolshik, Вы писали:

B>Здравствуйте, a_g_barnaul, Вы писали:


__>>Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?


B> java.awt.Robot позволяет делать скриншоты (метод createScreenCapture()).


Ему хочется Rectangle... а как ему дать именно jPanel.. это можно? или просто высчитывать где область?
те у jPanel в картинку или на печать нет ...???
Re[3]: подскажите как JPanel сохранить как картинку(распечат
От: bolshik Россия http://denis-zhdanov.blogspot.com/
Дата: 01.06.05 07:27
Оценка:
__>Ему хочется Rectangle... а как ему дать именно jPanel.. это можно? или просто высчитывать где область?
__>те у jPanel в картинку или на печать нет ...???

Чем не устраивает решение:

public Image getComponentImage(JComponent component) {
try {
Robot robot = new Robot();
Rectangle componentRectangle = component.getBounds();
Image componentImage = robot.createScreenCapture(componentRectangle);
return componentImage;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
http://denis-zhdanov.blogspot.com
Re[4]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 07:49
Оценка:
Здравствуйте, bolshik, Вы писали:

__>>Ему хочется Rectangle... а как ему дать именно jPanel.. это можно? или просто высчитывать где область?

__>>те у jPanel в картинку или на печать нет ...???

B>Чем не устраивает решение:


B> public Image getComponentImage(JComponent component) {

B> try {
B> Robot robot = new Robot();
B> Rectangle componentRectangle = component.getBounds();
B> Image componentImage = robot.createScreenCapture(componentRectangle);
B> return componentImage;
B> } catch (Exception e) {
B> e.printStackTrace();
B> }
B> return null;
B> }

Это именно то!!! Спасибо! но есть проблема!!
вот в чем проблемка...
есть Приложение...у него Главное меню и jPanel, в этой панели тулбари еще jPanel(пусть GrafikjPanel)....

надо сохранить только GrafikjPanel делаю:
.....
Rectangle componentRectangle = GrafikjPanel.getBounds();
Image componentImage = robot.createScreenCapture(componentRectangle);
.....
Но в картинке сохраняется еще и изображение меню...и тулбара!!! а мне его очень там не надо!!!
Re: подскажите как JPanel сохранить как картинку(распечатать
От: Blazkowicz Россия  
Дата: 01.06.05 07:51
Оценка:
Здравствуйте, a_g_barnaul, Вы писали:

__>Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?


bufferedImage = new BufferedImage(...);
g = BufferedImage.getGraphics();
JPanel,paint(g);
ImageIO.write(bufferedImage, ...);


Опять же могут быть нюансы в зависисти от того отображена ли твоя панельна экране или нет... А что значит распечатать? Печатать можно и на принтер сразу без картинки...
Re[2]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 07:56
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, a_g_barnaul, Вы писали:


__>>Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?


B>
B>bufferedImage = new BufferedImage(...);
B>g = BufferedImage.getGraphics();
B>JPanel,paint(g);
B>ImageIO.write(bufferedImage, ...);
B>


B>Опять же могут быть нюансы в зависисти от того отображена ли твоя панельна экране или нет... А что значит распечатать? Печатать можно и на принтер сразу без картинки...

Думаю тут нет проблемм...кнопка сохранить будет на том же фрейме...если не отображена..то не нажмешь...
а вот с печатью можно поподробней? мне именно сразу на принтер?
Re[3]: подскажите как JPanel сохранить как картинку(распечат
От: Blazkowicz Россия  
Дата: 01.06.05 08:03
Оценка:
Здравствуйте, a_g_barnaul, Вы писали:

__>Думаю тут нет проблемм...кнопка сохранить будет на том же фрейме...если не отображена..то не нажмешь...

__>а вот с печатью можно поподробней? мне именно сразу на принтер?


JobAttributes jobAttributs = new JobAttributes();
jobAttributs.setDialog(JobAttributes.DialogType.NONE);
PageAttributes pageAttributes;
pageAttributes = new PageAttributes();
pageAttributes.setMedia(PageAttributes.MediaType.A4);
pageAttributes.setOrientationRequested(PageAttributes.OrientationRequestedType.LANDSCAPE);
pageAttributes.setColor(PageAttributes.ColorType.COLOR);
pageAttributes.setPrinterResolution(300);
PrintJob printJob = Toolkit.getDefaultToolkit().getPrintJob(frame, "Title", jobAttributs, pageAttributes);
g = printJob.getGraphics();
panel.paint(g);
Re[2]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 08:15
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, a_g_barnaul, Вы писали:


__>>Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?


B>
B>bufferedImage = new BufferedImage(...);
B>g = BufferedImage.getGraphics();
B>JPanel,paint(g);
B>ImageIO.write(bufferedImage, ...);
B>


B>Опять же могут быть нюансы в зависисти от того отображена ли твоя панельна экране или нет... А что значит распечатать? Печатать можно и на принтер сразу без картинки...


Глупый вопрос..но не могу с ходу разобраться..у bufferedImage = new BufferedImage(...); параметры какие? я если честно вообще первый раз с ним работаю... там что высота, ширина и еще что то..если да? как можно из jPanel это выдернуть?
Re[2]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 08:30
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, a_g_barnaul, Вы писали:


__>>Необхобимо JPanel сохранить в какомнибудь стандартном графическом формате, вместе со всем что на ней есть, и нарисовано..(или если нельзя то только то что на ней наресовано....), и как можно ее же распечатать?


B>
B>bufferedImage = new BufferedImage(...);
B>g = BufferedImage.getGraphics();
B>JPanel,paint(g);
B>ImageIO.write(bufferedImage, ...);
B>


B>Опять же могут быть нюансы в зависисти от того отображена ли твоя панельна экране или нет... А что значит распечатать? Печатать можно и на принтер сразу без картинки...




Разобрался...кроме imageType!!! но надеюсь доковырять.... Сори за глупый вопрос...!!!!
Re[4]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 09:11
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, a_g_barnaul, Вы писали:


__>>Думаю тут нет проблемм...кнопка сохранить будет на том же фрейме...если не отображена..то не нажмешь...

__>>а вот с печатью можно поподробней? мне именно сразу на принтер?


B>
B>JobAttributes jobAttributs = new JobAttributes();
B>jobAttributs.setDialog(JobAttributes.DialogType.NONE);
B>PageAttributes pageAttributes;
B>pageAttributes = new PageAttributes();
B>pageAttributes.setMedia(PageAttributes.MediaType.A4);
B>pageAttributes.setOrientationRequested(PageAttributes.OrientationRequestedType.LANDSCAPE);
B>pageAttributes.setColor(PageAttributes.ColorType.COLOR);
B>pageAttributes.setPrinterResolution(300);
B>PrintJob printJob = Toolkit.getDefaultToolkit().getPrintJob(frame, "Title", jobAttributs, pageAttributes);
B>g = printJob.getGraphics();
B>panel.paint(g);
B>


Отправляет на печать..но не печатает...размер 0! это уже в очереди принтера....в чем загвоздка не пойму...
Re[5]: подскажите как JPanel сохранить как картинку(распечат
От: Lucker Беларусь http://lucker.intervelopers.com/
Дата: 01.06.05 09:15
Оценка:
Здравствуйте, a_g_barnaul, Вы писали:
B>>
B>>panel.paint(g);
B>>


__>Отправляет на печать..но не печатает...размер 0! это уже в очереди принтера....в чем загвоздка не пойму...


попробуй вызвать panel.print(g);
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[6]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 09:26
Оценка:
Здравствуйте, Lucker, Вы писали:

L>Здравствуйте, a_g_barnaul, Вы писали:

B>>>
B>>>panel.paint(g);
B>>>


__>>Отправляет на печать..но не печатает...размер 0! это уже в очереди принтера....в чем загвоздка не пойму...


L>попробуй вызвать panel.print(g);


это получившийся код:

                              JobAttributes jobAttributs = new JobAttributes();
                    jobAttributs.setDialog(JobAttributes.DialogType.NONE);
                    PageAttributes pageAttributes;
                    pageAttributes = new PageAttributes();
                    pageAttributes.setMedia(PageAttributes.MediaType.A4);
                    pageAttributes.setOrientationRequested(PageAttributes.OrientationRequestedType.LANDSCAPE);
                    pageAttributes.setColor(PageAttributes.ColorType.COLOR);
                    pageAttributes.setPrinterResolution(300);
                    PrintJob printJob = Toolkit.getDefaultToolkit().getPrintJob(applicatMain, "Title", jobAttributs, pageAttributes);
                    Graphics g = printJob.getGraphics();
                    jMainGrafikPanel.print(g);


результат:
в задачах принтера:

Документ:
Состояние: постановка в очередь
Тип данных: RAW
Размер: 0

и весит и весит.....
Re[7]: подскажите как JPanel сохранить как картинку(распечат
От: Blazkowicz Россия  
Дата: 01.06.05 09:30
Оценка:
__>результат:
__>в задачах принтера:

__> Документ:

__> Состояние: постановка в очередь
__> Тип данных: RAW
__> Размер: 0

__>и весит и весит.....



printJob.end();

У тебя руки когда-нибудь дойдут до документации или нет?
Re[8]: подскажите как JPanel сохранить как картинку(распечат
От: Blazkowicz Россия  
Дата: 01.06.05 09:33
Оценка:
Смотрю вот свой код двухлетней давности, я ещё зачем-то grapichs.dispose() делал...
Re[8]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 09:35
Оценка:
Здравствуйте, Blazkowicz, Вы писали:


__>>результат:

__>>в задачах принтера:

__>> Документ:

__>> Состояние: постановка в очередь
__>> Тип данных: RAW
__>> Размер: 0

__>>и весит и весит.....



B>printJob.end();


B>У тебя руки когда-нибудь дойдут до документации или нет?

спасибо!

просто слишком срочно надо сделать то в чем не особо разбераюсь...все перечитывать просто не успею....
Re[9]: подскажите как JPanel сохранить как картинку(распечат
От: a_g_barnaul Россия  
Дата: 01.06.05 09:43
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Смотрю вот свой код двухлетней давности, я ещё зачем-то grapichs.dispose() делал...


может это потому что картинка получается мааааленькая и немного в стороне..... если нет то можно ссылку на документацию..где это можно почитать?
Re[10]: подскажите как JPanel сохранить как картинку(распеча
От: a_g_barnaul Россия  
Дата: 01.06.05 09:51
Оценка:
Здравствуйте, a_g_barnaul, Вы писали:

__>Здравствуйте, Blazkowicz, Вы писали:


B>>Смотрю вот свой код двухлетней давности, я ещё зачем-то grapichs.dispose() делал...


__>может это потому что картинка получается мааааленькая и немного в стороне..... если нет то можно ссылку на документацию..где это можно почитать?


все гоню....перевел не так... .dispose() понятно...но как промаштабировать то что печатать будем...это возможно? если да то где можно об этом почитать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.