السلام عليكم ورحمة الله وبركاته ,,,
عملت يا شباب برنامج ليطبع ما بداخل (TextArea) لكن طلعت لي مشكلة بسيطة بس ماني عارف حلها. أرجو ممن يعرف حلها ألا يبخل علي بالحل, وهذه هي أكواد البرنامج :-
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;
public class prnt extends JFrame
{
private final FontCanvas fc;
public final int ONE_PAGE = 0;
public final int CUR_RANGE = 1;
public final int ALL_TEXT = 2;
private int printMode = ONE_PAGE;
private PageFormat page = null;
private PrinterJob printer = null;
public prnt()
{
setTitle("Try to Print !");
setSize(400,300);
fc = new FontCanvas();
getContentPane().add(fc,BorderLayout.CENTER);
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
public void doPrint( int i ) {
if ( printer == null ) {
printer = PrinterJob.getPrinterJob();
page = printer.defaultPage();
}
printMode = i;
printer.setPrintable( fc.text.getText(), page );
try {
printer.print();
}
catch ( Exception e ) {
}
}
public class FontCanvas extends JPanel implements Printable
{
JTextArea text = new JTextArea(15,15);
JScrollPane sp = new JScrollPane(text);
JButton print_btn = new JButton(" P r i n t ... ");
public FontCanvas() {
print_btn.addActionListener(new prntListener());
getContentPane().setLayout(new BorderLayout());
getContentPane().add(sp,BorderLayout.NORTH);
getContentPane().add(print_btn,BorderLayout.SOUTH);
}
}
public class prntListener implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
doPrint(1);
}
}
public static void main(String[] args)
{
new prnt();
}
}
وشكراً لكم جميعاً ,,,