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 آماده رو پرینت کنم . ولی با این روش امکان پذیر نیست .
کسی می دونه جواب سوال منو ؟
من برای پرینت گرفتن یه صفحه از این کد استفاده می کنم :
/*
* 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 آماده رو پرینت کنم . ولی با این روش امکان پذیر نیست .
کسی می دونه جواب سوال منو ؟