⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockorderprintpane.java

📁 一个使用java 写的进销存代码 使用了ejb 等技术 是学习j2ee的好
💻 JAVA
字号:
package print;

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

public class StockOrderPrintPane  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 String[] stockLedger = {"20040500001", "", "供应商1", "jack", "ame", "ame",
      "jack", "收货地址1", "仓库1", "2004-5-6 16:32:00.0", "2004-5-6 16:32:00.0", "0", "备注"};
  //创建进货单明细账数组
  static String[][] stockSubLedger = {{"1234567891234567", "25.5", "25", "125623.85", "2004-12-12"},
      {"2234567891234567", "33.5", "25", "125623.85", "2004-12-12"},
      {"3234567891234567", "75.5", "25", "125623.85", "2004-12-12"},
      {"4234567891234567", "29.5", "25", "125623.85", "2004-12-12"},
      {"5234567891234567", "63.5", "25", "125623.85", "2004-12-12"},
  };
*/
  //创建页码变量
  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 StockOrderPrintPane() {
    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 += 51;
    //显示第2列内容
    g2.drawString(stockLedger[9], x, y);
    x += 80 + 51;
    //显示第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 + -