使用j**a swing仿window7标准计算器界面

西安拾光婚礼工作室 2024-11-30 10:56:26
最佳回答
1目标:初始化窗体代码:如下----------------public class view extends jframe{public view(){th**.settitle("计算器");//设置标题th**.setresizable(false);//不可改变大小th**.setlocationrelativeto(**);//居中显示th**.setsize(228, 324);//窗体大小,可以使用faststone capture的屏幕尺量一下win计算器的大小th**.setdefaultcloseoperation(jframe.exit_on_close);//默认关闭操作}public static void main(string[] args) {new view().setv**ible(true);}}2目标:设置菜单代码:如下----------------/*** 创建初始化菜单方法(别忘记在构造函数里调用)*/private void initmenu(){jmb = new jmenubar();//创建菜单条jm_view = new jmenu("查看(v)");//查看菜单jm_view.setmnemonic('v');//设置热键jm_edit = new jmenu("编辑(e)");//编辑菜单jm_edit.setmnemonic('e');jm_help = new jmenu("帮助(h)");//帮助菜单jm_help.setmnemonic('h');jmb.add(jm_view);jmb.add(jm_edit);jmb.add(jm_help);th**.setjmenubar(jmb);//将菜单条加入窗体中}3目标:仿结果显示框代码:如下----------------/*** 创建内容区域初始化方法*/private void initcontent(){//整个窗口区域jpanel jp = new jpanel();jp.setlayout(**);//设置空布局以便绝对定位//显示框区域jpanel jptmp = new jpanel(){//获取背景图片,使用截图工具从win计算器显示框中截取2像素宽度作为背景image bg = new imageicon("imgs/bg.png").getimage();/** * 填充结果显示区域的背景 */@overrideprotected void paintcomponent(graphics g) {super.paintcomponent(g);//x轴平铺满面板for(int i = 0;i<th**.getwidth();i+=bg.getwidth(th**)){g.drawimage(bg, i, 0, th**);//绘制背景图片}}};//设置显示框上方小字体font font_lab = new font("arial", font.bold, 22);jla_input = new jlabel();jla_input.settext("0");//设置字体右对齐jla_input.sethorizontalalignment(jlabel.right);jla_input.setfont(font_lab);//设置显示框中计算结果的字体font_lab = new font("arial", font.bold, 10);jla_show = new jlabel();jla_show.settext("sqrt");//设置字体右对齐jla_show.sethorizontalalignment(jlabel.right);jla_show.setfont(font_lab);//设置显示框区域的位置的大小jptmp.setbounds(14, 15, 190, 50);jptmp.setlayout(new borderlayout());jptmp.add(jla_show,borderlayout.north);jptmp.add(jla_input,borderlayout.center);//设置边框jptmp.setborder(borderfactory.createlineborder(new color(142,156,173)));jp.add(jptmp);th**.setlayout(new borderlayout());th**.add(jp,borderlayout.center);}4目标:绘制其他按钮代码:如下----------------①设置字符枚举类public enum operator{//用于swith判断,待用mc,mr,ms,madd,msubtract,//mc,mr,ms,m+,m-clback,clerror,clclear,opernegation,opersqrt,//<-,ce,c,-/+,开平方n7,n8,n9,operdivide,operper,// /,%,n4,n5,n6,opermultiply,operreciproc,//*,倒数n1,n2,n3,opersubtract,operequ,//-,=n0,operdot,operadd;//+//用于显示public static final string [] labs = new string[]{"mc","mr","ms","m+","m-","←","ce","c","±","√","7","8","9","/","%","4","5","6","*","1/x","1","2","3","-","=","0",".","+"};}②添加按钮jptmp = new jpanel();jptmp.setbounds(14, 72, 196,194);jptmp.setlayout(**);font font_but = new font("arial", font.bold, 10);//创建按钮字体for (int i = 0; i < **_oper.length; i++) {**_oper[i] = new **utton(operator.labs[i]);//设置按钮文字**_oper[i].setforeground(new color(30,57,91));//设置字体颜色**_oper[i].setactioncommand(operator.values()[i].tostring());//设置按钮标示**_oper[i].setfont(font_but);//设置按钮字体**_oper[i].setbounds(i%5*(33+6), i/5*(24+6), 33, 24);//统一33宽,24高,间距6,每5个换一行**_oper[i].setborder(new lineborder(new color(135,151,170), 1));//设置按钮边框**_oper[i].addactionl**tener(th**);//添加**jptmp.add(**_oper[i]);}**_oper[24].setbounds(24%5*(33+6), 24/5*(24+6), 33, 24*2+6);//调整等号按钮位置**_oper[25].setbounds(25%5*(33+6), 25/5*(24+6), 33*2+6, 24);//调整0按钮的位置**_oper[26].setbounds(27%5*(33+6), 26/5*(24+6), 33, 24);//调整.按钮的位置**_oper[27].setbounds(28%5*(33+6), 27/5*(24+6), 33, 24);//调整较好按钮的位置jp.add(jptmp);5完整代码-----package com.lfd.view;import j**a.awt.borderlayout;import j**a.awt.color;import j**a.awt.font;import j**a.awt.graphics;import j**a.awt.image;import j**a.awt.event.actionevent;import j**a.awt.event.actionl**tener;import j**ax.swing.borderfactory;import j**ax.swing.imageicon;import j**ax.swing.**utton;import j**ax.swing.jframe;import j**ax.swing.jlabel;import j**ax.swing.jmenu;import j**ax.swing.jmenubar;import j**ax.swing.jpanel;import j**ax.swing.border.lineborder;import com.lfd.common.operator;public class view extends jframe implements actionl**tener{private jmenubar jmb;private jmenu jm_view,jm_edit,jm_help;private jlabel jla_input,jla_show;private **utton[] **_oper = new **utton[28];public view(){initmenu();initcontent();th**.settitle("计算器");//设置标题th**.setresizable(false);//不可改变大小th**.setlocationrelativeto(**);//居中显示th**.setsize(228, 324);//窗体大小,可以使用faststone capture的屏幕尺量一下win计算器的大小th**.setdefaultcloseoperation(jframe.exit_on_close);//默认关闭操作}/*** 初始化菜单方法*/private void initmenu(){jmb = new jmenubar();//创建菜单条jm_view = new jmenu("查看(v)");//查看菜单jm_view.setmnemonic('v');//设置热键jm_edit = new jmenu("编辑(e)");//编辑菜单jm_edit.setmnemonic('e');jm_help = new jmenu("帮助(h)");//帮助菜单jm_help.setmnemonic('h');jmb.add(jm_view);jmb.add(jm_edit);jmb.add(jm_help);th**.setjmenubar(jmb);//将菜单条加入窗体中}/*** 创建内容区域初始化方法*/private void initcontent(){//整个窗口区域jpanel jp = new jpanel();jp.setlayout(**);//显示框区域jpanel jptmp = new jpanel(){//获取背景图片,使用截图工具从win计算器显示框中截取2像素宽度作为背景image bg = new imageicon("imgs/bg.png").getimage();/*** 填充结果显示区域的背景*/@overrideprotected void paintcomponent(graphics g) {super.paintcomponent(g);//x轴平铺满面板for(int i = 0;i<th**.getwidth();i+=bg.getwidth(th**)){g.drawimage(bg, i, 0, th**);//绘制背景图片}}};//设置显示框上方小字体font font_lab = new font("arial", font.bold, 22);jla_input = new jlabel();jla_input.settext("0");//设置字体右对齐jla_input.sethorizontalalignment(jlabel.right);jla_input.setfont(font_lab);//设置显示框中计算结果的字体font_lab = new font("arial", font.bold, 10);jla_show = new jlabel();jla_show.settext("sqrt");//设置字体右对齐jla_show.sethorizontalalignment(jlabel.right);jla_show.setfont(font_lab);//设置显示框区域的位置的大小jptmp.setbounds(14, 15, 190, 50);jptmp.setlayout(new borderlayout());jptmp.add(jla_show,borderlayout.north);jptmp.add(jla_input,borderlayout.center);//设置边框jptmp.setborder(borderfactory.createlineborder(new color(142,156,173)));jp.add(jptmp);jptmp = new jpanel();jptmp.setbounds(14, 72, 196,194);jptmp.setlayout(**);font font_but = new font("arial", font.bold, 10);//创建按钮字体for (int i = 0; i < **_oper.length; i++) {**_oper[i] = new **utton(operator.labs[i]);//设置按钮文字**_oper[i].setforeground(new color(30,57,91));//设置字体颜色**_oper[i].setactioncommand(operator.values()[i].tostring());//设置按钮标示**_oper[i].setfont(font_but);//设置按钮字体**_oper[i].setbounds(i%5*(33+6), i/5*(24+6), 33, 24);//统一33宽,24高,间距6,每5个换一行**_oper[i].setborder(new lineborder(new color(135,151,170), 1));//设置按钮边框**_oper[i].addactionl**tener(th**);//添加**jptmp.add(**_oper[i]);}**_oper[24].setbounds(24%5*(33+6), 24/5*(24+6), 33, 24*2+6);//调整等号按钮位置**_oper[25].setbounds(25%5*(33+6), 25/5*(24+6), 33*2+6, 24);//调整0按钮的位置**_oper[26].setbounds(27%5*(33+6), 26/5*(24+6), 33, 24);//调整.按钮的位置**_oper[27].setbounds(28%5*(33+6), 27/5*(24+6), 33, 24);//调整较好按钮的位置jp.add(jptmp);th**.setlayout(new borderlayout());th**.add(jp,borderlayout.center);}public static void main(string[] args) {new view().setv**ible(true);}@overridepublic void actionperformed(actionevent e) {//todo 实现逻辑操作**utton ** = (**utton) e.getsource(); string commond = **.getactioncommand();}}-----package com.lfd.common;public enum operator{mc,mr,ms,madd,msubtract,//mc,mr,ms,m+,m-clback,clerror,clclear,opernegation,opersqrt,//<-,ce,c,-/+,开平方n7,n8,n9,operdivide,operper,// /,%,n4,n5,n6,opermultiply,operreciproc,//*,倒数n1,n2,n3,opersubtract,operequ,//-,=n0,operdot,operadd;//+public static final string [] labs = new string[]{"mc","mr","ms","m+","m-","←","ce","c","±","√","7","8","9","/","%","4","5","6","*","1/x","1","2","3","-","=","0",".","+"};}end 20210311
汇率兑换计算器

类似问答
  • 怎样使用车险计算器?
    • 2024-11-30 01:37:59
    • 提问者: 未知
    1车险计算器可以搜索使用网页版的计算器,也可以下载到手机设备上使用,打开软件之后点击上方的车辆价格输入自己的车辆价格。2保险里面的很多险种可以根据自己的需要点击选择,选择不同的价位,再次点击可以取消保险险种的选择,选择综合性更好的险种。3想要购买的保险直接点击就可以选中,选择之后的保险会自动变化价格,不同的车险计算器基本是一致的,点击开始计算车险价格。4点击选择车辆的时间和使用地点以及行驶的里程,...
  • 如何使用计算器开根号
    • 2024-11-30 20:23:53
    • 提问者: 未知
    1方法一:如果使用的是手机计算器,将手机横屏。2输入你想开根号的数字,点击开根号符号即可计算。3方法二:在电脑搜索栏搜索计算器。4点击“打开”选项。5选择科学计算器,即可进行开根号。6总结如下。end
  • j**a swing.
    • 2024-11-30 20:42:02
    • 提问者: 未知
    给你做了个小例子,其中的图片你用自己的替换,前提是图片必需是png格式,不想看到的部分需透明。我blog文章中带有png图片资源。http://hi.baidu.com/mq612/blog/item/7beae451ff1f22ddb645ae64.html package net.miqiang.gui;import j**a.awt.graphics;import j**a.awt.imag...
  • 2017年房贷计算器如何使用?怎样操作房贷计算器?
    • 2024-11-30 02:21:18
    • 提问者: 未知
    贷款之后大家就会面临计算房贷计算利息的情况,现在大家都会使用计算器,通过计算器计算的结果还是比较精准,但是计算器计算房贷和利息并不是一步...北京热门楼盘总价260万起 ...
  • cfa考试使用的计算器是自带的吗?一般计算器可以用吗?
    • 2024-11-30 01:59:25
    • 提问者: 未知
    cfa协会只允许考生使用两种计算:德州仪器的ba ii plus(or professional)以及惠普的12c(or platinum)。刚接触cfa的时候,笔者作为一个非金融学生、非金融从业者,分别试用了两种计算器。温馨提示:cfa考试前需要熟练使用计算器哦。惠普12c(or platinum)、 此款计算器给我的第一印象就是其金属...
  • 怎么用一般科学计算器算标准差?
    • 2024-11-30 02:32:17
    • 提问者: 未知
    首先按下计算器开关,再按2次信息键2ndf——on/c——出现stat——输入数值x1——m+—输入数值x2——m+……输入xi——按x—m键,显示x是平均值,接按rm显示s就是标准差。
  • 如何正确使用贷款计算器准确计算贷款数据
    • 2024-11-30 02:20:20
    • 提问者: 未知
    随着时代的进步,我们可以预知很多的事情,比如你可以通过天气预报知道明天的天气如何,还可以通 过一些软件知道投资某种商品的风险有多大,最终能够直接影响到你的个人决策上,当然,如果你想...
  • 如何在excel里面计算标准分
    • 2024-11-30 21:57:10
    • 提问者: 未知
    1首先要知道标准分如何求:标准分=(原始分-平均分)/标准差。然后在一个表格里面输入数据,如图,我是直接拿的班上成绩表。2如图中界面,在表格相应的空白位置用鼠标点击一下。平均分的函数是**erage、标准差的函数是stdevp。3然后在箭头处输入公式:=(e4-**erage(e$4:k4))/stdev(e$4:k4)(这是算第一名学生教育信息处理的标准分)4上面输入公式后,再单击鼠标,计算结果...
  • 使用计算器算真数
    • 2024-11-30 00:09:15
    • 提问者: 未知
    不解.设x^y=z如果已知x、y,求z:输入 x 幂(有的机是^(键,有的是xy,有的是x右上角有一个框)y=;如果已知y、z求x:输出y次根号z;如果已知x、z求y:输入log(x,z)=(如果你的计算器是旧版(如 casio fx-82tl),log.
  • 怎样使用科学计算器计算对数?
    • 2024-11-30 22:59:45
    • 提问者: 未知
    计算机上的log都是默认2113以10为底的对数,因此log100=2,log1000=3。如果需5261要计算以非10为底4102的对数1653,要使用换底公式,比如想计算以7为底12的对数,在计算器上的操作应该是(log12)/(log7)。从对数的发明过程可以看到,社会生产、科学技术的需要是数学发展的主要动力。建立对数与...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。