Я только начинаю узнавать о печати с помощью Java Swing, поэтому, пожалуйста, потерпите меня, если этот вопрос очень наивный.
У меня довольно сложный макет с несколькими JPanels, которые содержат другие JPanels, которые содержат JLabels. Я хочу как-нибудь красиво напечатать это на принтере.
Я знаю, что могу «рисовать» на объекте Graphics2D, который представляет напечатанную страницу, но для этого требуется, чтобы я размещал каждый объект по отдельности. Я хотел бы иметь возможность использовать менеджеры разметки Swing для разметки элементов на моей странице. Один из способов сделать это - вызвать jp.paint(g2d)
, где jp - это JPanel, а g2d - объект Graphics2D, представляющий напечатанную страницу. Однако, насколько я могу видеть, это будет печатать только JPanel, который фактически виден на экране. Если JPanel не виден, он не будет напечатан.
Так есть ли способ создать макет (довольно сложный) JPanel и отправить его на принтер без предварительного отображения JPanel на экране компьютера?
Или я нахожусь здесь на совершенно неверном пути?