PDA

View Full Version : نحوه پرینت frame



parnian~parnian
شنبه 31 تیر 1391, 18:02 عصر
سلام
من برای پرینت گرفتن یه صفحه از این کد استفاده می کنم :

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/


import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;


public class backup extends javax.swing.JFrame implements Printable{

/** Creates new form backup */
public backup() {
initComponents();
}


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

final backup gds = new backup();
gds.setPreferredSize(new Dimension(200,200));
gds.setMinimumSize(new Dimension(200,200));
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
setVisible(true);
PrinterJob pjob = PrinterJob.getPrinterJob();
pjob.setPrintable( gds, pjob.defaultPage());
if (pjob.printDialog()) {
pjob.print();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

public int print(Graphics g, PageFormat pf, int pageIndex) {
int retval = Printable.PAGE_EXISTS;

if (pageIndex > 0){
retval = Printable.NO_SUCH_PAGE;
} else {
g.translate((int)(pf.getImageableX()), (int)(pf.getImageableY()));
paint(g);
}

return retval;
}
public void paint(Graphics g) {
super.paint(g);
g.drawString("Hello world!", 100, 100);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new backup().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
// End of variables declaration

}



ولی مشکل من این جاست که می خوام یه frame آماده رو پرینت کنم . ولی با این روش امکان پذیر نیست .

کسی می دونه جواب سوال منو ؟

parnian~parnian
یک شنبه 01 مرداد 1391, 14:37 عصر
کسی راه حل دیگه ای نداره ؟

spiderman200700
دوشنبه 02 مرداد 1391, 12:39 عصر
به اینجا یه نگاهی بکن
http://www.cafeaulait.org/course/week13/08.html

parnian~parnian
دوشنبه 02 مرداد 1391, 17:49 عصر
به اینجا یه نگاهی بکن
http://www.cafeaulait.org/course/week13/08.html
ممنون ..............