Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.awt.print仅打印第一页_Java_Printing_Pagination_Graphics2d - Fatal编程技术网

java.awt.print仅打印第一页

java.awt.print仅打印第一页,java,printing,pagination,graphics2d,Java,Printing,Pagination,Graphics2d,我正试图根据oracle网页中的打印示例打印列表,但出于某种原因,它只打印列表的第一页 我从oracle获取了有关基本打印的打印示例: 在这里对它进行了修改,以便更好地解释我的意思 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.print.*; public class HelloWorldPrinter implements Printable, ActionListene

我正试图根据oracle网页中的打印示例打印列表,但出于某种原因,它只打印列表的第一页

我从oracle获取了有关基本打印的打印示例:

在这里对它进行了修改,以便更好地解释我的意思

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.print.*;

public class HelloWorldPrinter implements Printable, ActionListener {


    public int print(Graphics g, PageFormat pf, int page) throws
                                                        PrinterException {

        if (page > 0) { /* We have only one page, and 'page' is zero-based */
            return NO_SUCH_PAGE;
        }

        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());

        g.drawString("1.Hello world!", 100, 100);
        g.drawString("2.Hello world!", 100, 300);
        g.drawString("3.Hello world!", 100, 600);
        g.drawString("4.Hello world!", 100, 800);
        g.drawString("5.Hello world!", 100, 1000);
        g.drawString("6.Hello world!", 100, 1200);
        g.drawString("7.Hello world!", 100, 1500);

        return PAGE_EXISTS;
    }

    public void actionPerformed(ActionEvent e) {
         PrinterJob job = PrinterJob.getPrinterJob();
         job.setPrintable(this);
         boolean ok = job.printDialog();
         if (ok) {
             try {
                  job.print();
             } catch (PrinterException ex) {
             }
         }
    }

    public static void main(String args[]) {

        UIManager.put("swing.boldMetal", Boolean.FALSE);
        JFrame f = new JFrame("Hello World Printer");
        f.addWindowListener(new WindowAdapter() {
           public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JButton printButton = new JButton("Print Hello World");
        printButton.addActionListener(new HelloWorldPrinter());
        f.add("Center", printButton);
        f.pack();
        f.setVisible(true);
    }
}

这个示例只打印前4行…

我有一段时间遇到了类似的问题。在正确分页方面帮了我很大的忙。正如在我的问题中所建议的,尝试在教程示例中复制,并确保它有效,然后开始一次添加一个部分,直到它停止工作,这样您就可以看到问题所在

编辑:哎呀,我没注意到答案来自OP。哦,好吧,如果有人遇到这个问题,OP的答案不起作用,也许我的答案会起作用