طباعة واجهة المستخدم الرسومية فى الجافا

اذهب الى الأسفل

طباعة واجهة المستخدم الرسومية فى الجافا  Empty طباعة واجهة المستخدم الرسومية فى الجافا

مُساهمة من طرف أحمد مناع في الجمعة فبراير 07, 2020 12:02 pm

أهلا بكم

في هذا المقال ، سنرى كيفية طباعة واجهة المستخدم الرسومية وليكن نافذة في java وذلك باستخدام الواجهة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

حيث سنقوم بإنشاء فئة تطبق الواجهة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وذلك للكتابة فوق طريقة الطباعة لإخبار PrintJob عن مكون واجهة المستخدم الذي يجب طباعته ، و سوف نفهم أفضل بكثير مع مثال.

إذا كان لدينا نموذج مثل ما يلي:


طباعة واجهة المستخدم الرسومية فى الجافا  Gui_java_swing

وإذا أردنا طباعة أجزاء معينة من النموذج نفسه أو كله ، فيمكننا القيام بذلك باستخدام الفئة التالية "MyPrintable.java" . الكود كما يلي:

الكود:
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import static java.awt.print.Printable.NO_SUCH_PAGE;
import static java.awt.print.Printable.PAGE_EXISTS;
import java.awt.print.PrinterException;
/**
 * @see https://www.jc-mouse.net
 * @author mouse
 */
public class MiPrintable implements Printable {
    
    private Component component;

    public MiPrintable(Component component) {
        this.component = component;
    }

    @Override
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if (pageIndex > 0) {
            return NO_SUCH_PAGE;
        }
        Graphics2D g2d = (Graphics2D) graphics;        
        g2d.translate(20, 20);
        component.paint(g2d);        
        return PAGE_EXISTS;
    }
    
}

ثم نقوم بتنفيذ هذه الفئة في أي مكان نريده. على سبيل المثال من زر أمر [ طباعة واجهة المستخدم الرسومية ]

الكود:
private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {                                            
        MiPrintable mp = new MiPrintable(this);
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(mp);
        boolean ok = job.printDialog();
       if (ok) {
            try {
                job.print();
            } catch (PrinterException ex) {
                 System.err.println(ex.getMessage());
            }
        }
     }


الاخراج :

طباعة واجهة المستخدم الرسومية فى الجافا  Jframe_print

يمكنك ملاحظة اننا قمنا بطباعة النافذة بالكامل وذلك بتمرير الكلمة this الى مثيل جديد لفئة MiPrintable لدينا كمعلمة المكون الذي نريد طباعته ، لذلك اذا اردنا طباعة جزء معين نود ، علينا فقط الإشارة إلى المكون في الفئة «MyPrintable.java»...ففى مثالنا السابق نريد طباعة JTabbedpane3 سيكون على النحو التالى :

الكود:
 MiPrintable mp = new MiPrintable(JTabbedpane3);

و النتيجة :

طباعة واجهة المستخدم الرسومية فى الجافا  Java_printable

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1014
النقاط : 201817
التقيم : 123
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

طباعة واجهة المستخدم الرسومية فى الجافا  Empty رد: طباعة واجهة المستخدم الرسومية فى الجافا

مُساهمة من طرف NEXT في السبت فبراير 22, 2020 6:19 am

jpjhjsd  طباعة واجهة المستخدم الرسومية فى الجافا  1f600

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
طباعة واجهة المستخدم الرسومية فى الجافا  Do.php?imgf=154090993464951
NEXT
NEXT
الادارة
الادارة

تاريخ التسجيل : 18/02/2011
المساهمات : 415
النقاط : 200620
التقيم : 19
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى