View Full Version : [java] come stampare su carta un jframe
Salve a tutti!
Non ho mai stampato una finestra in java. Dovrei stampare su carta una finestra contenente un grafico. Come posso procedere?:muro:
Puoi creare un Printable il cui metodo print invoca a sua volta ilFrame.print. In mezzo c'è un graphics, da dove arrivi si vede subito. Col printable passi a PrintJob e il gioco è fatto.
tristo esempio:
package printtest;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class PrintTest {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
execute();
}
});
}
private static void execute() {
final JFrame frame = new JFrame("Print Test");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
final JButton printButton = new JButton("Print");
printButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
print(frame);
}
});
frame.add(printButton, BorderLayout.SOUTH);
frame.setVisible(true);
}
private static void print(final Component c) {
final Printable printable = new Printable() {
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
c.print(graphics);
return pageIndex == 0 ? PAGE_EXISTS : NO_SUCH_PAGE;
}
};
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(printable);
if(pj.printDialog()) {
try {
pj.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
Grazie per l'aiuto anche se con ritardo. Alla fine ho risolto il problema.... ma adesso voglio adattare un JFrame che occupa più fogli di stampa in un solo foglio e stampare solamente parte del JFrame in questione. Come posso procedere? :mc: Se qualcuno può aiutarmi ne sarei davvero grato!:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.