增强的打印功能
自从Java SE 5开始,Sun就对控件的打印功能进行了加强。如JTextField、JTextArea等。在Java SE 6中Sun为打印增加了分页功能。我们只需要调用JtextField或JTextArea的print方法就可以调用打印对话框。下面是一段测试代码。
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.print.*;
public class TextPrint { public static void main(final String args[]) { JFrame frame = new JFrame("打印测试"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JTextArea textArea = new JTextArea(); JScrollPane pane = new JScrollPane(textArea); frame.add(pane, BorderLayout.CENTER); textArea.setText("打印内容...\r\n可以分页!" ); JButton button = new JButton("打印"); frame.add(button, BorderLayout.SOUTH); ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { try { textArea.print(); } catch (PrinterException pe) { System.err.println("打印失败..."); } } }; button.addActionListener(listener); frame.setSize(250, 150); frame.setVisible(true); } } | 图7和图8分别是打印对话框和设置对话框,点击"打印"按钮后弹出如图8的对话框。
图7 打印界面 图8 设置对话框 | 虽然提供了打印设置对话框,但我们并无法设置如页眉(角)等信息,幸运的是print的一个重载为我们提供了这个功能。下面是这个方法的参数。
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintService service, PrintRequestAttributeSet attributes, boolean interactive) |
[上一页] [1] [2] [3] [4] [下一页]
|