📄 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 + -