?? stockreturnorderprintpane.java
字號:
package print;import javax.swing.*;import java.awt.*;import java.awt.print.*;import java.util.*;public class StockReturnOrderPrintPane extends JPanel{ final static Color fg = Color.black; //創建字體 Font font16 = new Font("宋體", Font.BOLD, 16); Font font11 = new Font("宋體", Font.PLAIN, 11); //是否第1頁變量 static boolean isFirstPage = true; //創建退貨單數組 static String[] stockLedger = {"", "", "", "", "", "", "", "", "", "", "", "0", ""}; //創建退貨單明細賬數組 static String[][] stockSubLedger = new String[0][5]; //創建頁碼變量 static int printPage = 0; //頁面左邊的空白 int pageLeftMargin = 88; //與左邊的距離 int x = 0; //與項部的距離 int y = 0; //行寬 int lineHeight = 14; //行間距 int lineDistant = 14; //表格的行高 int tableLineHeight = 17; //表格的總高度 int tableHeight = 0; //創建完成狀態數組 String[] onProcesses = {"進行", "撤消", "完成"}; //重新繪畫 public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; //設置畫筆顏色 g2.setPaint(fg); drawPages(g2); } public StockReturnOrderPrintPane() { this.setBackground(Color.white); } /** 打印頁面的方法 */ public void drawPages(Graphics2D g2){ if(isFirstPage){ drawFirstPage(g2); }else{ drawOtherPages(g2); } } /** 打印第1頁的方法 */ public void drawFirstPage(Graphics2D g2){ //取得表格的高度 tableHeight = tableLineHeight * (stockSubLedger.length + 1); //設置字體 g2.setFont(font16); //顯示退貨單 g2.drawString("退貨單", 273, 80);/*顯示第1行的內容*/ g2.setFont(font11); x = pageLeftMargin; //第一行與頂部的距離 y = 114; //顯示第1列內容 g2.drawString("單據編號:", x, y); x += 51; //顯示第2列內容 g2.drawString(stockLedger[0], x, y); x += 80; //顯示第3列內容 g2.drawString("供應商:", x, y); x += 51; //顯示第4列內容 g2.drawString(stockLedger[2], x, y);/*顯示第2行的內容*/ x = pageLeftMargin; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString("請購員:", x, y); x += 51; //顯示第2列內容 g2.drawString(stockLedger[3], x, y); x += 80; //顯示第3列內容 g2.drawString("訂購員:", x, y); x += 51; //顯示第4列內容 g2.drawString(stockLedger[4], x, y); x += 51; //顯示第5列內容 g2.drawString("驗收員:", x, y); x += 43; //顯示第6列內容 g2.drawString(stockLedger[5], x, y); x += 51; //顯示第7列內容 g2.drawString("現金管理員:", x, y); x += 63; //顯示第8列內容 g2.drawString(stockLedger[6], x, y);/*顯示第3行的內容*/ x = pageLeftMargin; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString("退貨地址:", x, y); x += 51; //顯示第2列內容 g2.drawString(stockLedger[7], x, y);/*顯示第4行的內容*/ x = pageLeftMargin; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString("倉庫名字:", x, y); x += 51; //顯示第2列內容 g2.drawString(stockLedger[8], x, y);/*顯示第5行的內容*/ x = pageLeftMargin; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString("退貨單日期:", x, y); x += 60; //顯示第2列內容 g2.drawString(stockLedger[9], x, y); x += 80 + 60; //顯示第3列內容 g2.drawString("退貨日期:", x, y); x += 51; //顯示第4列內容 g2.drawString(stockLedger[10], x, y);/*顯示第6行的內容*/ x = pageLeftMargin; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString("完成狀態:", x, y); x += 51; //顯示第2列內容 g2.drawString(onProcesses[Integer.parseInt(stockLedger[11])] , x, y);/*顯示第7行的內容*/ x = pageLeftMargin; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString("備注:", x, y);/*顯示第8行的內容*/ x = pageLeftMargin + 22; y += lineHeight + lineDistant; //顯示第1列內容 g2.drawString(stockLedger[12], x, y);/*顯示退貨單明細賬字符串*/ x = pageLeftMargin; y += 48; //顯示第1列內容 g2.drawString("退貨單明細賬:", x, y);/*顯示表格的第一行的線*/ x = pageLeftMargin; y += lineDistant; //畫表格的橫線 g2.drawLine(x, y, x + 440, y); //畫表格的第1條豎線 g2.drawLine(x, y, x, y + tableHeight); //畫表格的第2條豎線(商品條形碼列) x += 123; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第3條豎線(退貨價列) x += 83; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第4條豎線(數量列) x += 68; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第5條豎線(金額列) x += 83; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第6條豎線(有效期列) x += 83; g2.drawLine(x, y, x, y + tableHeight);/*顯示表格的標題*/ x = pageLeftMargin; y += tableLineHeight; //畫表格的橫線 g2.drawLine(x, y, x + 440, y); x += 35; //顯示第1列內容 g2.drawString("商品條形碼", x, y - 4); x += 115; //顯示第2列內容 g2.drawString("退貨價", x, y - 4); x += 80; //顯示第3列內容 g2.drawString("數量", x, y - 4); x += 75; //顯示第4列內容 g2.drawString("金額", x, y - 4); x += 75; //顯示第5列內容 g2.drawString("有效期", x, y - 4);/*顯示表格的內容*/ for(int i = 0; i < stockSubLedger.length; i++){ x = pageLeftMargin; y += tableLineHeight; //畫表格的橫線 g2.drawLine(x, y, x + 440, y); x += 5; //顯示第1列內容 g2.drawString(stockSubLedger[i][0], x, y - 4); x += 125; //顯示第2列內容 g2.drawString(stockSubLedger[i][1], x, y - 4); x += 80; //顯示第3列內容 g2.drawString(stockSubLedger[i][2], x, y - 4); x += 70; //顯示第4列內容 g2.drawString(stockSubLedger[i][3], x, y - 4); x += 80; //顯示第5列內容 g2.drawString(stockSubLedger[i][4], x, y - 4); }/*顯示頁尾的內容*/ x = 279; y = 789; //顯示頁碼 g2.drawString("第 1 頁", x, y); } /** 打印其它頁面的方法 */ public void drawOtherPages(Graphics2D g2){ //設置字體 g2.setFont(font11); //取得表格的高度 tableHeight = tableLineHeight * (stockSubLedger.length + 1);/*顯示退貨單明細賬字符串*/ x = pageLeftMargin; y = 75; //顯示第1列內容 g2.drawString("退貨單明細賬(接上頁):", x, y);/*顯示表格的第一行的線*/ x = pageLeftMargin; y += lineDistant; //畫表格的橫線 g2.drawLine(x, y, x + 440, y); //畫表格的第1條豎線 g2.drawLine(x, y, x, y + tableHeight); //畫表格的第2條豎線(商品條形碼列) x += 123; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第3條豎線(退貨價列) x += 83; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第4條豎線(數量列) x += 68; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第5條豎線(金額列) x += 83; g2.drawLine(x, y, x, y + tableHeight); //畫表格的第6條豎線(有效期列) x += 83; g2.drawLine(x, y, x, y + tableHeight); /*顯示表格的標題*/ x = pageLeftMargin; y += tableLineHeight; //畫表格的橫線 g2.drawLine(x, y, x + 440, y); x += 35; //顯示第1列內容 g2.drawString("商品條形碼", x, y - 4); x += 115; //顯示第2列內容 g2.drawString("退貨價", x, y - 4); x += 80; //顯示第3列內容 g2.drawString("數量", x, y - 4); x += 75; //顯示第4列內容 g2.drawString("金額", x, y - 4); x += 75; //顯示第5列內容 g2.drawString("有效期", x, y - 4);/*顯示表格的內容*/ for (int i = 0; i < stockSubLedger.length; i++) { x = pageLeftMargin; y += tableLineHeight; //畫表格的橫線 g2.drawLine(x, y, x + 440, y); x += 5; //顯示第1列內容 g2.drawString(stockSubLedger[i][0], x, y - 4); x += 125; //顯示第2列內容 g2.drawString(stockSubLedger[i][1], x, y - 4); x += 80; //顯示第3列內容 g2.drawString(stockSubLedger[i][2], x, y - 4); x += 70; //顯示第4列內容 g2.drawString(stockSubLedger[i][3], x, y - 4); x += 80; //顯示第5列內容 g2.drawString(stockSubLedger[i][4], x, y - 4); }/*顯示頁尾的內容*/ x = 279; y = 789; g2.drawString("第 " + printPage + " 頁", x, y); } public boolean isIsFirstPage() { return isFirstPage; } public void setIsFirstPage(boolean isFirstPage) { this.isFirstPage = isFirstPage; } public String[] getStockLedger() { return stockLedger; } public void setStockLedger(String[] stockLedger) { this.stockLedger = stockLedger; } public String[][] getStockSubLedger() { return stockSubLedger; } public void setStockSubLedger(String[][] stockSubLedger) { this.stockSubLedger = stockSubLedger; } public int getPrintPage() { return printPage; } public void setPrintPage(int pirntPage) { this.printPage = pirntPage; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -