📄 saleorderprintframe.java~18~
字号:
package saleinterface;import java.awt.*;import java.awt.event.*;import javax.swing.*;import print.*;import java.awt.print.*;import method.*;public class SaleOrderPrintFrame extends JFrame implements ActionListener { JPanel contentPane; //创建布局类 BorderLayout borderLayout1 = new BorderLayout(); FlowLayout flowLayout1 = new FlowLayout(); //创建滚动框控件 JScrollPane jScrollPane1 = new JScrollPane(); //创建编辑框控件 JTextField pageInfoTextField = new JTextField(); JTextField pageTextField = new JTextField(); //创建按钮面板 JPanel btnPanel = new JPanel(); //创建按钮 JButton goBtn = new JButton(); JButton priorBtn = new JButton(); JButton nextBtn = new JButton(); JButton printOnePageBtn = new JButton(); JButton printPagesBtn = new JButton(); JButton exitBtn = new JButton(); //创建字体类 Font dialog13 = new java.awt.Font("Dialog", 0, 13); //创建打印平面 SaleOrderPrintPane saleOrderPrintPane = new SaleOrderPrintPane(); //创建打印类 PrinterJob job = PrinterJob.getPrinterJob(); //创建页面格式类 PageFormat pageFormat = new PageFormat(); //创建页面类 Paper paper = new Paper(); //创建销售单数组 String[] saleLedger = new String[11]; //创建销售单明细账数组 String[][] saleSubLedger = new String[0][4]; //创建总页面变量 int totalPage = 0; //创建方法类 DataMethod dataMethod = new DataMethod(); public SaleOrderPrintFrame() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(630, 700)); this.setTitle("销售单打印窗口"); //设置打印页面的的尺寸 paper.setSize(600, 850); //设置打印范围 paper.setImageableArea(0, 0, 600, 850); //加入pageFormat类中 pageFormat.setPaper(paper); //设置打印面板的大小 saleOrderPrintPane.setPreferredSize(new Dimension(600, 850)); //设置编辑框控件的属性 pageInfoTextField.setEditable(false); pageInfoTextField.setText("共0页"); pageInfoTextField.setPreferredSize(new Dimension(50, 22)); pageTextField.setPreferredSize(new Dimension(30, 22)); //设置按钮面板的布局 btnPanel.setLayout(flowLayout1); //设置按钮的属性 priorBtn.setText("上一页"); priorBtn.setActionCommand("prior"); nextBtn.setText("下一页"); nextBtn.setActionCommand("next"); goBtn.setText("显示页面"); goBtn.setActionCommand("show"); printOnePageBtn.setText("打印当前页"); printOnePageBtn.setActionCommand("printOnePage"); printPagesBtn.setText("打印全部"); printPagesBtn.setActionCommand("printPages"); exitBtn.setText("退出"); exitBtn.setActionCommand("exit"); //设置滚动框的属性 jScrollPane1.getViewport().add(saleOrderPrintPane); //为按钮面板加入控件 btnPanel.add(pageInfoTextField, null); btnPanel.add(priorBtn, null); btnPanel.add(nextBtn, null); btnPanel.add(pageTextField, null); btnPanel.add(goBtn, null); btnPanel.add(printOnePageBtn, null); btnPanel.add(printPagesBtn, null); btnPanel.add(exitBtn, null); //为窗口面板加入控件 contentPane.add(btnPanel, BorderLayout.NORTH); contentPane.add(jScrollPane1, BorderLayout.CENTER); //设置窗口类的字体和为按钮加入动作接收器 setupFontAndListener(); } //设置窗口类的字体和为按钮加入动作接收器的方法 public void setupFontAndListener(){ Component[] components = btnPanel.getComponents(); //创建临时按钮控件 JButton tmpBtn = new JButton(); for(int i = 0; i < components.length; i++){ components[i].setFont(dialog13); if(components[i].getClass().getName().equals("javax.swing.JButton")){ tmpBtn = (JButton)components[i]; tmpBtn.addActionListener(this); } } } protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { exit(); } } //退出方法 public void exit(){ //隐藏窗口 this.setVisible(false); //清空编辑框的内容 pageInfoTextField.setText("共0页"); pageTextField.setText(""); } //分拆页面的方法 public void splitPage(){ int length = saleSubLedger.length; totalPage = 1; //第一页最多只显示22条明细账记录 length -= 22; //其它页最多显示38条明细账记录 int otherPages = (int)length/38; totalPage += otherPages; if((length % 38) > 0){ totalPage += 1; } pageInfoTextField.setText("共" + totalPage + "页"); //显示第1页的数据 if(totalPage > 0){ pageTextField.setText("1"); this.showOnePage(); } } //单击事件 public void actionPerformed(ActionEvent e) { //取得按钮的动作字符串 String actionCommand = e.getActionCommand().trim(); //单击按钮的处理代码 if (actionCommand.equals("prior")) { //显示上一页的方法 String inputPage = pageTextField.getText(); //检查是否整数 if(dataMethod.checkInt(inputPage) == 0){ JOptionPane.showMessageDialog(null,"页码必须是整数,请重新输入."); return; } int page = Integer.parseInt(inputPage) ; page--; if(page == 0 ){ page = 1; } pageTextField.setText(String.valueOf(page)); this.showOnePage(); }else if(actionCommand.equals("next")){ //显示下一页的方法 String inputPage = pageTextField.getText(); //检查是否整数 if(dataMethod.checkInt(inputPage) == 0){ JOptionPane.showMessageDialog(null,"页码必须是整数,请重新输入."); return; } int page = Integer.parseInt(inputPage) ; page++; if(page > totalPage ){ page = totalPage; } pageTextField.setText(String.valueOf(page)); this.showOnePage(); }else if(actionCommand.equals("show")){ //显示选择页面的方法 this.showOnePage(); }else if(actionCommand.equals("printOnePage")){ //打印选择页面的方法 this.printOnePage(); }else if(actionCommand.equals("printPages")){ //打印全部页面的方法 for (int iPage = 1; iPage <= totalPage; iPage++){ pageTextField.setText(String.valueOf(iPage)); this.printOnePage(); } }else if(actionCommand.equals("exit")){ exit(); } } //显示当前页的方法 public void showOnePage() { String inputPage = pageTextField.getText(); //检查是否整数 if(dataMethod.checkInt(inputPage) == 0){ JOptionPane.showMessageDialog(null,"页码必须是整数,请重新输入."); return; } int page = Integer.parseInt(inputPage) ; if((page > totalPage) || (page <= 0)){ JOptionPane.showMessageDialog(null,"页码输入有误,请重新输入."); return; } //显示第一页的方法 if(page == 1){ saleOrderPrintPane.setIsFirstPage(true); saleOrderPrintPane.setSaleLedger(saleLedger); if(totalPage == 1){ saleOrderPrintPane.setSaleSubLedger(saleSubLedger); }else{ String[][] tempStockSubLedger = new String[22][5]; System.arraycopy(saleSubLedger, 0, tempStockSubLedger, 0, 22); saleOrderPrintPane.setSaleSubLedger(tempStockSubLedger); } //显示其它页的方法 }else{ saleOrderPrintPane.setIsFirstPage(false); String[][] tempStockSubLedger = null; if(page == totalPage){ //取得最后一页剩余的记录数 int records = (saleSubLedger.length - 22) % 38; tempStockSubLedger = new String[records][5]; //复制数组 System.arraycopy(saleSubLedger, 22 + (page - 2) * 38, tempStockSubLedger, 0, records); saleOrderPrintPane.setSaleSubLedger(tempStockSubLedger); }else{ tempStockSubLedger = new String[38][5]; System.arraycopy(saleSubLedger, 22 + (page - 2) * 38, tempStockSubLedger, 0, 38); saleOrderPrintPane.setSaleSubLedger(tempStockSubLedger); } } //设置页码 saleOrderPrintPane.setPrintPage(page); //重新显示面板内容 saleOrderPrintPane.repaint(); } //打印当前页的方法 public void printOnePage() { //创建打印接口 SaleOrderPrintable saleOrderPrintable = new SaleOrderPrintable(); //显示当前页的内容 this.showOnePage(); //创建打印任务 Book book = new Book(); book.append(saleOrderPrintable, pageFormat); // 设置打印机的Book job.setPageable(book); //打开打印窗口,询问是否进行打印 boolean doPrint = job.printDialog(); if (doPrint) { try { //执行打印命令 job.print(); } catch (PrinterException ex) { ex.printStackTrace(); } } } //设置销售单数组的方法 public void setSaleLedger(String[] saleLedger) { this.saleLedger = saleLedger; } //设置销售单明细账的方法 public void setSaleSubLedger(String[][] saleSubLedger) { this.saleSubLedger = saleSubLedger; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -