|
|
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Доброго времени! Как сохранить содержимое окна приложения в виде файла известно многим да и примеров в интернете немеряно. А можно ли одним нажатием кнопки в запущенном приложении сразу отправить текущий экран на принтер, минуя процесс записи в файл? Не подскажете, в какую сторону смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 17:15:31 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 17:17:11 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
java.awt.Robot , если речь именно об экране, а дальше - как уже сказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 10:19:31 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Моя проблема в том, что нужно распечатать не панель, а диалог. Классический пример Код: java 1. 2. естественно, не работает - в данный момент на экране не потомок фрейма, а JDialog. Есть ли решение в этом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 11:08:07 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
ПолуламерМоя проблема в том, что нужно распечатать не панель, а диалог. Классический пример Код: java 1. 2. Чего вы всех путаете. JavaDoc для getPrintJob() читали вообще:??? Это не то что печатается. Это родительское окно для диалога печати, который будет показан юзеру. RTFM: frame - the parent of the print dialog. May be null if and only if jobAttributes is not null and jobAttributes.getDialog() returns JobAttributes.DialogType.NONE or JobAttributes.DialogType.COMMON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 11:17:23 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Blazkowicz , тысячекратно извиняюсь за поспешность + невнимательность, но тогда другая проблема - где же мне взять этот самый фрейм, родительский для диалога печати? Понимаю, что вопрос дурной, но самостоятельно его решить не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 12:21:55 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Полуламер Blazkowicz , тысячекратно извиняюсь за поспешность + невнимательность, но тогда другая проблема - где же мне взять этот самый фрейм, родительский для диалога печати? Понимаю, что вопрос дурной, но самостоятельно его решить не получается. Если юзеру не нужен диалог печати, то null. Если нужен, то http://docs.oracle.com/javase/6/docs/api/java/awt/Window.html#getOwner() Надеюсь, свой JDialog вы создавали с указанием родительского фрейма? Вообще имеет смысл хранить ссылку на корневой фрейм как глобальную переменную. Чтобы потом не искать, когда нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 12:31:44 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Продолжаю блуждать в трех соснах. Вот так вызывается диалог многострадальный диалог из родительской формы (ее класс JSplitPane): Код: java 1. 2. Т.е. в качестве родительского фрейма передается главное окно приложения. Так выглядит конструктор: Код: java 1. 2. 3. 4. В диалоге есть кнопка Print, к ней привязан метод: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Фрейм ff является отнюдь не пустым, этого прекрасно видно при дебаггинге, но при попытке getPrintJob генерируется ошибка java.lang.NullPointerException - точно так же как если бы вместо этого родительского Owner там стоял бы new Frame(). Кстати, если задать там null как первый параметр, то выдается сообщение об ошибке: "Фрейм не может быть null". Вроде сделал как Вы рекомендовали, но все равно не выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 13:25:51 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Вот это не пробовали переводить? May be null if and only if jobAttributes is not null and jobAttributes.getDialog() returns JobAttributes.DialogType.NONE or JobAttributes.DialogType.COMMON. если передавать null . То нужно указать аттрибуты, в которых будет JobAttributes.DialogType.NONE или JobAttributes.DialogType.COMMON. Вы вместо аттрибутов передаёте null. Передавайте аттрибуты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 13:36:59 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Изменил код следующим образом: Код: java 1. 2. 3. Теперь ошибка не генерируется, но если установлено значение JobAttributes.DialogType.COMMON, то выдается системное сообщение: "Сервис печати не найден" или как-то так, не знаю, как звучит на английском, возможно, "PrintJob not found", у меня система немецкая. PrintJob после этого получает значение null и на этом работа метода благополучно заканчивается. Если установлено значение JobAttributes.DialogType.NONE, то никакого сообщения об отсутствующем сервисе печати не выдается, это единственное различие. Понимаю, что замучил тупыми чайничными вопросами да еще и в пятницу, но досадно - решение ведь совсем рядом, не хватает какой-то мелочи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 14:21:52 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Принер в ОС установлен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 14:30:50 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Конечно, только что проверил с помощью кода: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. - все показались поименно. Но они все они сетевые, т.е. на моем компьютере ни один не подключен напрямую, неужели из-за этого такая ерунда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 14:53:16 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Показывайте ваше сообщение на немецком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 14:54:57 |
|
||
|
Печать экрана
|
|||
|---|---|---|---|
|
#18+
Уважаемый Blazkowicz , в надцатый раз приношу свои извинения в беспросветной тупости - только сейчас обнаружил, что из значащихся в списке принтеров не выбран тот, который используется в системе по умолчанию Стыдно, очень стыдно - после его отмечивания сразу появился вожделенный диалог печати Но тем не менее без Ваших объяснений про родительский фрейм и аттрибуты я бы так далеко не продвинулся, за что большое спасибо. Только бы теперь все получилось с печатью - уже неловко спрашивать на эту тему, терпение-то людское небеспредельно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 15:09:23 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38290449&tid=2129205]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
33ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 281ms |
| total: | 439ms |

| 0 / 0 |
