如何用java实现,1.白色的结账单,2.如何把结账单打印出来,如何写?

问题描述

如何用java实现,1.白色的提示结账面(就是图片中间的白色图片跟上面显示的结账单),2.用什么方法如何打印出来结账单 我上传了附件,有会的帮忙讲解下,或是写个代码带个注释! 问题补充第一个问题知道了,第二个问题有谁知道?就是打印结账单如何打印,写个简单的出来,最好加个注释,非常感谢!问题补充太强悍了!!!

解决方案

public class PrintPreviewDialog extends JDialog implements ActionListener {/** * */private static final long serialVersionUID = -7320342468005550954L;private JButton nextButton = new JButton("Next");private JButton previousButton = new JButton("Previous");private JButton closeButton = new JButton("Close");private JPanel buttonPanel = new JPanel();private PreviewCanvas canvas;public PrintPreviewDialog(Frame parent, String title, boolean modal,PrintTest pt, String str) {super(parent, title, modal);canvas = new PreviewCanvas(pt, str);setLayout();}private void setLayout() {this.getContentPane().setLayout(new BorderLayout());this.getContentPane().add(canvas, BorderLayout.CENTER);nextButton.setMnemonic('N');nextButton.addActionListener(this);buttonPanel.add(nextButton);previousButton.setMnemonic('N');previousButton.addActionListener(this);buttonPanel.add(previousButton);closeButton.setMnemonic('N');closeButton.addActionListener(this);buttonPanel.add(closeButton);this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);this.setBounds((int) ((SystemProperties.SCREEN_WIDTH - 400) / 2),(int) ((SystemProperties.SCREEN_HEIGHT - 400) / 2), 400, 400);}public void actionPerformed(ActionEvent evt) {Object src = evt.getSource();if (src == nextButton)nextAction();else if (src == previousButton)previousAction();else if (src == closeButton)closeAction();}private void closeAction() {this.setVisible(false);this.dispose();}private void nextAction() {canvas.viewPage(1);}private void previousAction() {canvas.viewPage(-1);}class PreviewCanvas extends JPanel {private String printStr;private int currentPage = 0;private PrintTest preview;public PreviewCanvas(PrintTest pt, String str) {printStr = str;preview = pt;}public void paintComponent(Graphics g) {super.paintComponent(g);Graphics2D g2 = (Graphics2D) g;PageFormat pf = PrinterJob.getPrinterJob().defaultPage();double xoff;double yoff;double scale;double px = pf.getWidth();double py = pf.getHeight();double sx = getWidth() - 1;double sy = getHeight() - 1;if (px / py < sx / sy) {scale = sy / py;xoff = 0.5 * (sx - scale * px);yoff = 0;} else {scale = sx / px;xoff = 0;yoff = 0.5 * (sy - scale * py);}g2.translate((float) xoff, (float) yoff);g2.scale((float) scale, (float) scale);Rectangle2D page = new Rectangle2D.Double(0, 0, px, py);g2.setPaint(Color.white);g2.fill(page);g2.setPaint(Color.black);g2.draw(page);try {preview.print(g2, pf, currentPage);} catch (PrinterException pe) {g2.draw(new Line2D.Double(0, 0, px, py));g2.draw(new Line2D.Double(0, px, 0, py));}}public void viewPage(int pos) {int newPage = currentPage + pos;if (0 <= newPage && newPage < preview.getPagesCount(printStr)) {currentPage = newPage;repaint();}}}}
解决方案二:
不错就用JWindow,没有标题栏和边框也没有任务栏按钮的,把景色设置为白色就可以了
解决方案三:
JWindow可以实现

时间: 2024-10-24 23:05:08

如何用java实现,1.白色的结账单,2.如何把结账单打印出来,如何写?的相关文章

日结账单和周结账单

  一,结账       在说周结账单和日结账单之前,得先做好结账的工作.在汇总里面,有个结账,其实这个结账的代码很简单,只是两个Update,值要把结账状态的标记改变一下就可以.这个结账好像平常都会有个老师负责收取充值的现金,也负责退卡的现金,在结他的账的时候,他要把手里的钱都上交.        周结账单和日结账单是对所有金额的汇总,包括学生的消费金额,而由于在上机时的消费金额是在下机时自动扣除的,所以,不涉及到现金的问题.但是,虽然这个金额不反应在结账里面,但是却反应在周结账单和日决诶账单

windows-如何用Java扫描Windows下的文件夹?

问题描述 如何用Java扫描Windows下的文件夹? 如何用Java扫描Windows下的文件夹以及文件夹下面的文件 解决方案 import java.io.File;/** * *自动扫描文件夹下的文件 *用途:自动扫描脚本输入路径,输出要执行的sql导入数据库: */public class OutSql { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method

如何用java获取到本地网卡信息

问题描述 如何用java获取到本地网卡信息 比如我想知道我本地eth0 ip网卡掩码等信息.如何用java得到这些信息. 解决方案 Linux下如何获取网卡信息获取网卡信息获取网卡信息 解决方案二: socket不知道是否可以 解决方案三: http://blog.csdn.net/xionglangs/article/details/50387569,亲测可以使用.

如何用java实现群聊私聊

问题描述 如何用java实现群聊私聊 群聊私聊即可,越简单越好,最好代码给我写上注释,我私聊写不好 解决方案 Java 群聊

如何用java对mysql 里面的数据进行批量修改

问题描述 如何用java对mysql 里面的数据进行批量修改 现在想要对数据库里面的学生姓名.年龄.性别.电话...进行修改,如何进行批量操作,比如一次性对于上述所属全部修改(更新),试过用statement.executeUpdate(sql1);statement.executeUpdate(sql2);....可是会出现sql语句语法错误,但是语句在数据库里面试过了,没有错误,求解 解决方案 试一下 把要修改的sql语句写在一起,用;号隔开 解决方案二: 如果是sql语句都一样的话,jav

正则-如何用Java爬取网页的copyright?

问题描述 如何用Java爬取网页的copyright? 谢谢了!新人不知道要怎么爬,这是老师论文中的内容,论文中写用了11种正则来抓取 请求大家支援QAQ 解决方案 jsoup import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; public static void main(String[] args) throws IOException { Document d

java-想知道如何用Java来做疏散??完全没有头绪

问题描述 想知道如何用Java来做疏散??完全没有头绪 完全没有头绪....专业布置的项目.刚学习还不知道怎么去做.求指点? 解决方案 疏散是什么,请说明白些,谢谢

8位图像像素值-如何用Java 的ImageIO获取8位灰度图像的像素值

问题描述 如何用Java 的ImageIO获取8位灰度图像的像素值 用Java 的ImageIO获取8位灰度图像的像素值与ToolkitImage获取的像素值不一样 解决方案 import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.*; public class Test{ public static void main(String args[]) { int[] rgb = new i

如何用java在mysql里创建表头

问题描述 如何用java在mysql里创建表头 用java在mysql里创建表头,表头是从网页的table标签里获取的属性值.CS萌新求大大解决一下.O(∩_∩)O谢谢 解决方案 create table (字段)http://www.pudn.com/downloads553/sourcecode/java/detail2282083.htmlhttp://blog.csdn.net/rui_dlut/article/details/6758031