首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

使用 Java AWT PrintJob 列印 JTable 元件

     編輯:Java 程式設計入門

在 Java Swing 應用程式中,若需將 JTable 的內容直接送至印表機列印,可利用 java.awt.Toolkit 取得預設的 PrintJob 來完成。以下範例示範如何透過 AWT 列印機制,將包含 JTable 的 JScrollPane 繪製到列印圖形環境中。

核心程式碼範例

private void printTable() {
    Toolkit kit = Toolkit.getDefaultToolkit(); // 取得工具箱
    Properties props = new Properties();
    props.put("awt.print.printer", "durango"); // 設定印表機名稱
    props.put("awt.print.numCopies", "2");     // 設定列印份數

    if (kit != null) {
        // 取得列印工作物件
        PrintJob printJob = kit.getPrintJob(this, "列印 頁面", props);
        if (printJob != null) {
            Graphics pg = printJob.getGraphics(); // 取得列印圖形環境
            Graphics2D g2 = (Graphics2D) pg;
            PageFormat pf = new PageFormat();
            // 平移座標以符合可列印區域
            g2.translate(pf.getImageableX(), pf.getImageableY());

            if (pg != null) {
                try {
                    // 將 JScrollPane 及其內容繪製至列印圖形環境
                    this.jScrollPane14.printAll(pg);
                } finally {
                    pg.dispose(); // 釋放圖形資源
                }
            }
            printJob.end(); // 結束列印工作
        }
    }
}

關鍵步驟說明

  1. 取得 PrintJob:呼叫 Toolkit.getPrintJob(Component, String, Properties),傳入父元件、文件名稱與列印屬性(如印表機名稱、份數)。
  2. 取得 Graphics 物件:透過 printJob.getGraphics() 取得列印用的圖形環境,並轉型為 Graphics2D 以利後續座標轉換。
  3. 設定頁面邊界:使用 PageFormat 取得可列印區域,並以 translate() 將原點移至列印邊界起始位置。
  4. 繪製元件:呼叫 JScrollPane.printAll(Graphics) 將整個捲軸窗格(包含 JTable)繪製到列印圖形環境。
  5. 資源釋放:在 finally 區塊中呼叫 pg.dispose() 釋放圖形資源,最後呼叫 printJob.end() 結束列印工作。

注意事項

  • 此範例使用舊版 AWT 列印 API(PrintJob),適用於簡單列印需求。若需更進階的分頁、頁首頁尾控制,建議改用 Java 2D 列印 API(java.awt.print.PrinterJob)。
  • 列印屬性中的印表機名稱("durango")需依實際環境調整,或移除以使用預設印表機。
  • 確保 jScrollPane14 為類別中的有效欄位,且已包含目標 JTable。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved