如何从Java中的文本区域打印区域?

时间:2014-08-23 10:49:06

标签: java swing printing

我在Java中有一个名为statsText的swing组件。其中包含文本,我希望用户能够使用打印机打印statsText中显示的数据。

我尝试了这个,但它不起作用:

java.awt.Component.print(statsText.getText());

那么我需要做什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

String text = statsText.getText();
JTextPane textPane = new JTextPane();
textPane.setText(text);
boolean success = textPane.print();
if (success) {
    /* show a success message  */
    ...
} else {
    /*show an error message */
}

答案 1 :(得分:0)

如果你的statsText对象是JTextComponent类型,包括JEditorPane,JTextArea和JTextField,那么它有几个打印方法are demonstrated in Oracle's Java tutorials for printing。从该页面上的信息中得出的一个简单例子是

import java.awt.print.PrinterException;
import javax.swing.JTextArea;

public class PrintExample {
    static JTextArea text = new JTextArea("Print this text");

    public static void main(String[] args) {
       try {
           text.print();
       } catch (PrinterException e) {
           e.printStackTrace();
       }
}

如果您的需求比简单的示例涵盖更多,则JTextComponent的Java SE javadocs中记录了更多选项,例如,您将找到一个允许您描述页眉和页脚的重载方法。打印作业,是否应显示系统打印对话框等。