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

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

基于Java swing組件實現簡易計算器

瀏覽:7日期:2022-09-02 16:18:20

本文記錄了筆者的第一個Java程序,基于Java抽象窗口工具(abstract window toolkit , AWT)和Swing(Swing屬于Java Foundation Classes的一部分)實現的建議計算器,由于筆者經驗有限,初學Java,代碼略帶bug,無法實現7+5×8之類式子的計算,只能實現算術運算符按從高到低的式子運算,部分代碼略顯冗雜,希望大家在評論區積極討論完善代碼!

計算器示意圖

基于Java swing組件實現簡易計算器

一、代碼相關知識簡介

JFrame(框架)

使用JFrame frame = new JFrame('My Frame');可以創建一個名為My Frame的windows框架

import javax.swing.*;public class Test { public static void main(String[] args) { // TODO Auto-generated method stub JFrame frame = new JFrame('My Frame');frame.setSize(300,300); frame.setVisible(true); }}

基于Java swing組件實現簡易計算器

JButton(按鈕)

使用JButton b = new JButtton('My Button');可創建一個按鈕組件。

import java.awt.*;import javax.swing.*;public class Test { JFrame frame; public static void main(String[] args) { // TODO Auto-generated method stub JFrame frame = new JFrame('My Frame'); JButton b = new JButton('My Button');frame.getContentPane().add(b,BorderLayout.CENTER); //將按鈕放在frame框架中央 frame.setSize(300,300); frame.setVisible(true); }}

JPanel(面板)

面板是一個容器,與頂層容器不同,JPanel不能獨立存在,必須放在其他容器的內部,下面代碼創建了含有一個按鈕的紅色面板。

import java.awt.*;import javax.swing.*;public class Test { JFrame frame; public static void main(String[] args) { // TODO Auto-generated method stub JFrame frame = new JFrame('My Frame'); JButton b = new JButton('My Button'); JPanel panel = new JPanel();panel.add(b); panel.setBackground(Color.red); frame.getContentPane().add(panel,BorderLayout.SOUTH); //將面板放在frame框架南方 frame.setSize(300,300); frame.setVisible(true); }}

JTextArea(文本輸入框)

使用 JTextArea 類可實現一個文本域,其常用構造方法如下。

①JTextArea():創建一個默認的文本域。

②JTextArea(int rows,int columns):創建一個具有指定行數和列數的文本域。

③JTextArea(String text):創建一個包含指定文本的文本域。

④JTextArea(String text,int rows,int columns):創建一個既包含指定文本,又包含指定行數和列數的多行文本域。

出相關組件介紹外與實現計算器還需對布局有簡單了解,本文僅使用GridLayout布局管理器,因此只對此做出介紹,若讀者需要還可自行理解其他布局管理器。

GridLayout是一種網絡式的布局管理器,將容器空間化為幾行幾列的形式網格,可將每個組件放在其中一格。

GridLayout定義在java.awt包中,有如下三種構造方法public GridLayout()public GridLayout(int rows , int cols) //定義的布局有rows行cools列public GridLayout(int rows , int cols,int h , int w) ////定義的布局有rows行cools列,水平間距為h,垂直間距為w

二、計算器功能

可實現加、減、乘、除功能,但由于筆者目前能力有限,若使用加、減、乘、除混合功能時需按運算符優先級,從高到小輸入式子如7×8+5而不能按5+7×8輸入,源代碼如下:

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator implements ActionListener{ JFrame frame; JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bd,be,bf,bg,bh,b0,Clear; JTextArea ta; String Textcontent ='',sum=''; double result=0; public static void main(String[] args) { // TODO Auto-generated method stub Calculator cl = new Calculator(); cl.go(); } public void go() { frame = new JFrame('Calculator'); ta = new JTextArea(1,20);//設置文本框大小為1行20列 ta.setBackground(Color.lightGray); JPanel cp = new JPanel(); cp.setLayout(new GridLayout(4,4,5,5)); //四行四列,邊距為5 JPanel c = new JPanel(); c.setLayout(new GridLayout(1,2,5,5)); //一行兩列,邊距為5 b0 = new JButton('0'); b0.addActionListener(this); //為每個按鈕添加監聽接口b1 = new JButton('1'); b1.addActionListener(this);b2 = new JButton('2'); b2.addActionListener(this);b3 = new JButton('3'); b3.addActionListener(this);b4 = new JButton('4'); b4.addActionListener(this);b5 = new JButton('5'); b5.addActionListener(this);b6 = new JButton('6'); b6.addActionListener(this);b7 = new JButton('7'); b7.addActionListener(this);b8 = new JButton('8'); b8.addActionListener(this);b9 = new JButton('9'); b9.addActionListener(this);ba = new JButton('.'); ba.addActionListener(this);bd = new JButton('+'); bd.addActionListener(this);be = new JButton('-'); be.addActionListener(this);bf = new JButton('×'); bf.addActionListener(this);bg = new JButton('/'); bg.addActionListener(this);bh = new JButton('='); bh.addActionListener(this);Clear= new JButton('Clear'); Clear.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {Textcontent ='';result=0;sum='';ta.setText(''); } });c.add(ta); c.add(Clear); c.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); cp.add(b7); cp.add(b8); cp.add(b9); cp.add(bd); cp.add(b4); cp.add(b5); cp.add(b6); cp.add(be); cp.add(b1); cp.add(b2); cp.add(b3); cp.add(bf); cp.add(b0); cp.add(ba); cp.add(bh); cp.add(bg); cp.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));Container f = frame.getContentPane(); f.add(c,BorderLayout.NORTH); f.add(cp,BorderLayout.SOUTH);frame.pack(); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { String content = e.getActionCommand(); ta.append(e.getActionCommand()); getTextContent(content); } public void getTextContent(String content) { if(content.equals('+')||content.equals('-')||content.equals('×')||content.equals('/')) { Textcontent = Textcontent+' '+content+' '; } else if(content.equals('=')) { Textcontent = Textcontent+' '+content; sum=GetResult(Textcontent); } else { Textcontent = Textcontent+content; } ta.append(sum); } public String GetResult(String Textcontent) { String n=Textcontent; String []content=n.split(' '); result = Double.valueOf(content[0]); for(int i=1;i<content.length;i++) { switch(content[i]) { case '+': result = result+Double.valueOf(content[i+1]);break; case '-': result = result-Double.valueOf(content[i+1]);break; case '×':result = result*Double.valueOf(content[i+1]);break; case '/': result = result/Double.valueOf(content[i+1]);break; case '=':break; } } return result+''; }}

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

標簽: Java
相關文章:
主站蜘蛛池模板: 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 液压油缸-液压站生产厂家-洛阳泰诺液压科技有限公司 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 山东信蓝建设有限公司官网 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 环比机械| 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 金刚网,金刚网窗纱,不锈钢网,金刚网厂家- 河北萨邦丝网制品有限公司 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 空压机网_《压缩机》杂志| 铆钉机|旋铆机|东莞旋铆机厂家|鸿佰专业生产气压/油压/自动铆钉机 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 合肥白癜风医院_合肥治疗白癜风医院_合肥看白癜风医院哪家好_合肥华研白癜风医院 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 分轨 | 上传文件,即刻分离人声和伴奏 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 昊宇水工|河北昊宇水工机械工程有限公司 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 深圳南财多媒体有限公司介绍| 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 |