电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java實現圖形化界面計算器

瀏覽:2日期:2022-09-01 14:33:07

本文實例為大家分享了java實現圖形化界面計算器的具體代碼,供大家參考,具體內容如下

最終效果圖:

java實現圖形化界面計算器

項目流程:

第一步:實現圖形化界面(添加計算器的 Button 和 用于顯示輸入數字、輸出結果的JTextField等)

java實現圖形化界面計算器

第二步:給按鈕和文本框添加鼠標監聽事件。

第三步:實現加減乘除、開方、平方、清零和退格功能。

開方運算:

java實現圖形化界面計算器

平方運算:

java實現圖形化界面計算器

加法運算:

java實現圖形化界面計算器

java實現圖形化界面計算器

減法運算:

java實現圖形化界面計算器

java實現圖形化界面計算器

乘法運算:

java實現圖形化界面計算器

java實現圖形化界面計算器

除法運算:

java實現圖形化界面計算器

java實現圖形化界面計算器

完整項目代碼:

package First_App;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Caculator extends JFrame{ /* * 圖形化界面設計 * */ private static final long serialVersionUID = 4907149509182425824L; public Caculator(){ Container c = getContentPane(); //定義一個頂級容器c setLayout(new GridLayout(2,1));//新建網格布局管理器,2行1列 JTextField jtf = new JTextField('0',40);//構造一個用指定文本和列初始化的新文本框--jtf jtf.setHorizontalAlignment(JTextField.RIGHT);//設置水平對齊方式:居右對齊 JButton data0 = new JButton('0'); JButton data1 = new JButton('1'); JButton data2 = new JButton('2'); JButton data3 = new JButton('3'); JButton data4 = new JButton('4'); JButton data5 = new JButton('5'); JButton data6 = new JButton('6'); JButton data7 = new JButton('7'); JButton data8 = new JButton('8'); JButton data9 = new JButton('9'); JButton point = new JButton('.'); JButton equ = new JButton('='); JButton plus = new JButton('+'); JButton minus = new JButton('-'); JButton mtp = new JButton('*'); JButton dvd = new JButton('/'); JButton sqr = new JButton('sqrt'); JButton root = new JButton('x^2'); JButton tg = new JButton('退格'); JButton ql = new JButton('清零'); JPanel jp = new JPanel(); //新建JPanel面板--jp jp.setLayout(new GridLayout(4,5,5,5));//新建網格布局管理器(行數,列數,組件間的水平垂直間距) jp.add(data7); jp.add(data8); jp.add(data9); jp.add(plus); jp.add(sqr); jp.add(data4); jp.add(data5); jp.add(data6); jp.add(minus); jp.add(root); jp.add(data1); jp.add(data2); jp.add(data3); jp.add(mtp); jp.add(ql); jp.add(data0); jp.add(point); jp.add(equ); jp.add(dvd); jp.add(tg); c.add(jtf);//將文本框jtf添加到頂級容器c中 c.add(jp);//將JPanel面板jp添加到頂級容器c中 setSize(400,300); setTitle('計算器'); setVisible(true); setResizable(false);//窗體大小由程序員決定,用戶不能自由改變大小 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); /* * ********************************************************* * 相關計算功能的實現 * ********************************************************* * */ data0.addActionListener(new ActionListener(){//數字0的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){//將按鈕值與0作比較 jtf.requestFocus();//把輸入焦點放在調用這個方法的控件上(即把光標放在文本框jtf里) } else{ String str = jtf.getText();//取得當前按鈕的按鈕值 jtf.setText(str+'0'); //將文本內容后加上字符0 } } }); data1.addActionListener(new ActionListener(){//數字1的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){//將按鈕值與0作比較 jtf.setText('');//將文本框初始化為空 jtf.setText('1');//將文本框內容置為 1 jtf.requestFocus();//把輸入焦點放在調用這個方法的控件上(即把光標放在文本框jtf里) } else{ String str = jtf.getText();//取得當前按鈕的按鈕值 jtf.setText(str+'1'); //將文本內容后加上字符1 } } }); data2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('2'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'2'); } } }); data3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('3'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'3'); } } }); data4.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('4'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'4'); } } }); data5.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('5'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'5'); } } }); data6.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('6'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'6'); } } }); data7.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('7'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'7'); } } }); data8.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('8'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'8'); } } }); data9.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('9'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'9'); } } }); point.addActionListener(new ActionListener(){ //點號的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('.'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'.'); } } }); plus.addActionListener(new ActionListener(){ //+號的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('+'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'+'); } } }); minus.addActionListener(new ActionListener(){ //-號的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('-'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'-'); } } }); mtp.addActionListener(new ActionListener(){ //*號的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('*'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'*'); } } }); dvd.addActionListener(new ActionListener(){ //除號的輸入 public void actionPerformed(ActionEvent arg0){ if(jtf.getText().equals('0')){ jtf.setText(''); jtf.setText('/'); jtf.requestFocus(); } else{ String str = jtf.getText(); jtf.setText(str+'/'); } } }); //【**退格功能如下**】 tg.addActionListener(new ActionListener(){//監聽退格鍵 public void actionPerformed(ActionEvent arg0){//處理退格鍵被按下的事件 String text = jtf.getText(); int i = text.length(); if(i>0){ text = text.substring(0,i-1);//去掉最后一個字符 if (text.length() == 0) {// 如果文本沒有了內容,則初始化計算器的各種值 jtf.setText('0'); } else { // 顯示新的文本 jtf.setText(text); } } } }); //【**清零功能如下**】 ql.addActionListener(new ActionListener(){//監聽清零鍵 public void actionPerformed(ActionEvent e) { jtf.setText('0');//將文本框置為0(清零功能) } }); //【**平方功能如下**】 root.addActionListener(new ActionListener(){//監聽root鍵 public void actionPerformed(ActionEvent e){//root鍵被按事件 String i = jtf.getText(); Double j = Double.parseDouble(i);//將字符串i轉換成對應的double類型的數值 double ans = j*j; //求平方 String answer =String.valueOf(ans);//將int型數據轉換成String類型 jtf.setText(answer);//將文本框設置為平方后的結果 } }); //【**開方功能如下**】 sqr.addActionListener(new ActionListener(){//監聽sqrt鍵 public void actionPerformed(ActionEvent e){//sqrt鍵被按事件 String i = jtf.getText(); Double j = Double.parseDouble(i);//將字符串轉換成對應的double類型的數值 double ans = (double)Math.sqrt(j);//求開方 String answer = String.valueOf(ans);//將double型數據轉換成String類型 jtf.setText(answer);//將文本框設置為開方后的結果 } }); //【等號實現 加減乘除 功能】 equ.addActionListener(new ActionListener(){ //監聽 “等號” 按鍵 public void actionPerformed(ActionEvent arg0){//處理“等號” 按鍵被按下事件 //【**加法運算**】 if(jtf.getText().indexOf('+')!= -1){ //將字符串分割為子字符串,然后將結果作為字符串數組返回 String[] s = jtf.getText().split('[+]');//轉義字符,要用'[+]'或者'+' Double d1 = Double.parseDouble(s[0]);//返回一個指定字符串表示的double值 Double d2 = Double.parseDouble(s[1]); double ans = d1 + d2; String answer = String.valueOf(ans);//將結果轉換為字符串 jtf.setText(answer);//將加法運算的結果以字符串形式在文本框中顯示 } //【**減法運算**】 else if(jtf.getText().indexOf('-')!= -1){ String[] s = jtf.getText().split('-'); jtf.setText(''); Double d1 = Double.parseDouble(s[0]); Double d2 = Double.parseDouble(s[1]); double ans = d1-d2; String answer =String.valueOf(ans); jtf.setText(answer); } //【**乘法運算**】 else if(jtf.getText().indexOf('*')!= -1){ String[] s = jtf.getText().split('[*]');//*是轉義字符,要用'[*]',或者'*' jtf.setText(''); Double d1 = Double.parseDouble(s[0]); Double d2 = Double.parseDouble(s[1]); double ans = d1*d2; String answer =String.valueOf(ans); jtf.setText(answer); } //【**除法運算**】 else if(jtf.getText().indexOf('/')!= -1){ String[] s = jtf.getText().split('/'); jtf.setText(''); Double d1 = Double.parseDouble(s[0]); Double d2 = Double.parseDouble(s[1]); double ans = d1/d2; String answer =String.valueOf(ans); jtf.setText(answer); } else{ jtf.setText('請選擇要進行的運算'); } } }); } public static void main(String[] args) { new Caculator(); }}

總結:

1.掌握基本的GUI添加按鈕、文本框的方法 2.掌握字符串的處理,這里用到了indexOf()、split()等方法 3.注意Java中遇到的轉義字符。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 防潮防水通风密闭门源头实力厂家 - 北京酷思帝克门窗 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 中医中药治疗血小板减少-石家庄血液病肿瘤门诊部 | 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 裹包机|裹膜机|缠膜机|绕膜机-上海晏陵智能设备有限公司 | 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 玄米影院| 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 科客,主见不成见| 湖南长沙商标注册专利申请,长沙公司注册代理记账首选美创! |