Могу ли я использовать printComponent без предварительного рисования компонента на экране? - PullRequest
1 голос
/ 03 августа 2009

Я использовал printComponent, который был показан в другом вопросе. Он отлично работает для печати JPanel, если я сначала добавлю это JPanel к JFrame и нарисую JFrame на экране. Но если я не сделаю этого до того, как напечатать, у меня будет напечатана пустая страница. Почему это?

Ответы [ 2 ]

3 голосов
/ 03 августа 2009

Я использовал код, подобный следующему, чтобы создать BufferedImage на панели, которая не видна на фрейме:

JPanel panel = new JPanel();
...  // add components
panel.setSize(300, 300);
panel.doLayout();
0 голосов
/ 03 августа 2009

потому что панель, которую вы хотите нарисовать, имеет начальный размер 0,0. После добавления в контейнер с менеджером макета и его отображения он получает «нормальный» размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...