日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:16日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美13videosex性极品| 99精品在线观看| 水蜜桃久久夜色精品一区| 国内精品亚洲| 国产精品天堂蜜av在线播放| 福利一区和二区| 久久精品福利| 婷婷久久免费视频| 激情综合网五月| 怡红院精品视频在线观看极品| 激情久久婷婷| 免费中文字幕日韩欧美| 在线精品一区| 国产日韩一区二区三区在线| 国产极品久久久久久久久波多结野 | 欧美a级一区二区| 免费一级欧美在线观看视频| 国产伊人久久| 日韩一区二区三区在线免费观看| 久久一区二区中文字幕| 黄色日韩在线| 日韩福利视频一区| 免费在线观看一区| 日韩一区电影| av不卡在线| 亚洲三级毛片| 国产精品欧美在线观看| 91欧美在线| 99在线观看免费视频精品观看| 四虎国产精品免费久久| 国产麻豆一区二区三区| 久久uomeier| 国产亚洲亚洲| 久久国产麻豆精品| 中文在线а√在线8| 国产精品老牛| 国产精品久久久久久久久久久久久久久 | 伊人久久一区| 欧美一级久久| 福利一区二区免费视频| 91国语精品自产拍| 91免费精品国偷自产在线在线| 国产精品videossex久久发布 | 日韩中文欧美在线| 国产欧美日韩精品一区二区免费| 亚洲三级欧美| 中文字幕亚洲在线观看| 精品国产99| 久久国产精品久久久久久电车| 国产乱人伦丫前精品视频| 国产中文字幕一区二区三区| 国产高清一区| 国产精品对白| 在线视频免费在线观看一区二区| 国产精品xxx| 亚洲免费一区二区| 精品在线网站观看| 欧美一区=区| 红杏一区二区三区| 美女精品在线| 国产一区二区三区四区五区| 日本大胆欧美人术艺术动态| 国产一区二区亚洲| 亚洲精品系列| 日韩精品一区二区三区免费观影| 亚洲精品人人| 亚洲一本视频| 美女在线视频一区| 蜜臀精品一区二区三区在线观看 | 国产精品女主播一区二区三区| 国产精品久久久久久模特| 伊人久久亚洲美女图片| 国产96在线亚洲| 丝袜亚洲另类欧美| 亚洲黄色免费看| 国产日韩中文在线中文字幕 | 日本欧洲一区二区| 肉色欧美久久久久久久免费看| 日韩精品欧美成人高清一区二区| 日韩在线二区| 免费日韩成人| 日韩1区2区日韩1区2区| 亚洲欧洲日本mm| 欧美国产中文高清| 天堂俺去俺来也www久久婷婷| 精品一区毛片| 免费观看亚洲| 精品视频在线观看网站| 亚洲精品看片| 国产精品88久久久久久| 麻豆理论在线观看| 精品视频黄色| 国产精品视频3p| 日韩欧美久久| 水蜜桃久久夜色精品一区的特点| 亚洲电影在线| 日韩成人亚洲| 97国产精品| 国产免费久久| 日韩激情一区二区| 亚洲精品乱码| 亚洲一区亚洲| 欧美日韩国产高清电影| 日韩欧美一区二区三区在线观看| 国产一区二区三区亚洲综合| 免费在线成人| 另类综合日韩欧美亚洲| 国产欧美一区二区三区米奇| 综合五月婷婷| 亚洲综合五月| 蜜臀久久久99精品久久久久久| 国产精品7m凸凹视频分类| 久久精品亚洲人成影院| 精品视频91| 精品三级国产| 麻豆成人91精品二区三区| 国产精品尤物| 国产精品一区二区免费福利视频| 18国产精品| 国产精品最新自拍| 久久超碰99| 国产精品一卡| 国产福利一区二区精品秒拍| 精品一区二区三区视频在线播放| 成人一区而且| 久久狠狠婷婷| 蜜桃成人av| 中文亚洲免费| 好看不卡的中文字幕| 九九久久婷婷| 亚洲一区成人| 亚洲视频电影在线| 视频一区日韩| 青草久久视频| 麻豆91精品91久久久的内涵| 国产一区三区在线播放| 日本在线啊啊| 亚洲二区免费| 香蕉成人久久| 日韩一区精品| 国产精品99精品一区二区三区∴| 精品国产精品国产偷麻豆| 国产激情在线播放| 韩国精品主播一区二区在线观看| 激情自拍一区| 视频一区视频二区中文字幕| 日韩成人精品一区二区三区 | 国产综合婷婷| 久久午夜精品| 日韩avvvv在线播放| 久久一区视频| 日韩国产网站| 快she精品国产999| 国产日韩一区二区三免费高清 | 亚洲精品日韩久久| 国产欧美日韩亚洲一区二区三区| 成人午夜亚洲| 婷婷综合网站| 亚洲精品在线二区| 麻豆传媒一区二区三区| 久久精品国产68国产精品亚洲| 亚洲欧美日本国产专区一区| 青青在线精品| 岛国av在线网站| 欧美日韩国产高清| 日本精品另类| 伊人久久av| 中文视频一区| 精品午夜视频| 婷婷综合亚洲| 欧美日韩99| 少妇精品导航| 日韩欧美中文在线观看| 国产精品13p| 一区二区三区四区在线观看国产日韩| 国产精品自拍区| 欧美亚洲国产激情| 日韩1区2区日韩1区2区| 日韩国产一区二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产一区成人| 久久福利在线| 国产视频一区在线观看一区免费| 国产精品亚洲欧美一级在线| 1024精品一区二区三区| 日韩国产在线观看| 久久精品影视| 国产精品网在线观看| 一区三区视频| 成人精品高清在线视频| 视频在线在亚洲| 在线天堂中文资源最新版| 日韩欧美美女在线观看| 欧美午夜精彩| 久久精品国产福利| 在线视频精品| 亚洲免费福利| 国产精品久久免费视频| 免费欧美日韩| 亚洲日本网址|