小编给大家分享一下java如何实现点菜器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联公司是一家集网站建设,吉阳企业网站建设,吉阳品牌网站建设,网站定制,吉阳网站建设报价,网络营销,网络优化,吉阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。具体内容如下
使用swing工具集 完成,花费两天的时间,没有难点使用的都是基本知识
输入桌号后,如果该桌没有人即可进行点菜
以下就总结下完成过程中遇到的问题
空指针异常
刚开始输入桌号点击确认好,一直出现空指针异常的信息,最初以为是没有进行初始化的原因,异常的原因也是指向这个,但是弄了半天发现一直弄不好,就很奇怪了,最后才发现原来错误出在if 和 else if的使用上。
最开始的代码是这样多个if 加上else,因为else 是匹配最近的if,所以多个if的时候,第一个if执行了else也会执行,这样就导致了我在按下确认按钮时,else里的new OrderDishes(mealMenus,menusName,file).setVisible(true);也跟着执行了,但此时的mealMenus并没有初始化,所以就出现了空指针异常
if(e.getSource()==querenButton){ if(idText.getText().length()!=0){ //代码省略 } if(e.getSource()==showButton){ //代码省略 } if(e.getSource()==stopOrderingButton){ }else{ String menusName=null; if(e.getSource()==meatButton){ //代码省略 } if(e.getSource()==vegetarianButton){ //代码省略 } if(e.getSource()==stapleFoodButton){ //代码省略 } if(e.getSource()==soupAndPorridgeButton){ //代码省略 } new OrderDishes(mealMenus,menusName,file).setVisible(true);//按下确认按钮后,new就执行了,但此时mealMenus还没初始化 }
把多个if改为if,else if就可解决问题,当if执行时else if不在执行,(没想到学了一年的java还会犯这种错误,失败呀);
if(e.getSource()==querenButton){ if(idText.getText().length()!=0){ //代码省略 } else if(e.getSource()==showButton){ //代码省略 } else if(e.getSource()==stopOrderingButton){ }else{ String menusName=null; if(e.getSource()==meatButton){ //代码省略 } else if(e.getSource()==vegetarianButton){ //代码省略 } else if(e.getSource()==stapleFoodButton){ //代码省略 } else if(e.getSource()==soupAndPorridgeButton){ //代码省略 } new OrderDishes(mealMenus,menusName,file).setVisible(true); }
Randomaccessfile
本程序使用randomaccessfile来对菜单进行写入文件和读出文件,让我进一步的认识到randomaccessfile的作用,randomaccessfile是I/O里功能最丰富的文件访问类,通过seek()方法可访问文件的任意,提供了众多方法来访问文件内容,本程序使用seek()每次都把文件指针放在最后面以便记录菜单,但使用readDouble把价格写进文件时价格就会出现乱码
//读出文件try { RandomAccessFile in=new RandomAccessFile(file,"r"); String mealName=null; while((mealName=in.readUTF())!=null){ showArea.append("\n"+mealName); String mealPrice=in.readUTF(); showArea.append(" "+mealPrice); totalPrice=totalPrice+Double.parseDouble(mealPrice); } //写入文件try { RandomAccessFile out=new RandomAccessFile(file,"rw"); if(file.exists()){ long length=file.length(); out.seek(length); } for (int i=0;i 然后我就把价格转换为String再写入文件,计算总价时再转换为Double,这会价格能够正确写入文件了,但还是有一些符号乱码,试过好的方法都不能解决这些符号乱码,等以后技术更好了再来解决 以上是“java如何实现点菜器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
新闻名称:java如何实现点菜器-创新互联
文章来源:http://cdweb.net/article/dcgheg.html