欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java圖形界面AWT編寫計(jì)算器

 更新時(shí)間:2020年12月14日 14:06:24   作者:niaonao  
這篇文章主要為大家詳細(xì)介紹了基于java語言下圖形界面AWT編寫計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、前言

1)、這個(gè)計(jì)算器是基于java語言下圖形界面AWT編寫的。其實(shí)我認(rèn)為寫這個(gè)計(jì)算器,實(shí)現(xiàn)什么功能不重要,市場也不缺這個(gè)計(jì)算器,而是在于對AWT中三大布局的及畫板的使用簡單控件的操作使用。通過聯(lián)系熟悉掌握AWT基礎(chǔ)為深入學(xué)習(xí)打下基礎(chǔ)。這個(gè)計(jì)算器功能也十分簡單,空有其表。不過有興趣的話可以繼續(xù)添加功能完善操作等。

2)、使用平臺:主要使用Myeclipse2014

3)、主要知識點(diǎn):java 基礎(chǔ); awt+swing

二、功能實(shí)現(xiàn)及代碼展示

1)、主要是layout布局的練習(xí),對畫板文本框的使用,以及控件button的事件的注冊與監(jiān)聽。因?yàn)楣δ芤埠芎唵?,所以代碼就簡寫到同一個(gè)類里了。實(shí)現(xiàn)了基本的四則運(yùn)算。

2)、代碼如下:

import java.awt.BorderLayout; 
import java.awt.GridLayout; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import java.awt.Color; 
 
public class JiSuanJi { 
 
 private JFrame frame; //聲明相關(guān)布局面板 
 private JPanel panelwest; 
 private JPanel panelcenter; 
 private JPanel paneleast; 
 private TextField tf; 
 
 private JButton buttonzero; //聲明按鈕控件 
 private JButton buttondot; 
 private JButton buttonequal; 
 private JButton buttonplus,buttonminus,buttonmultiple,buttondevision,buttonsin,buttontozero; 
 private JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,buttonseven,buttoneight,buttonnine; 
 
 
 private ButtonListener listener;   //聲明監(jiān)聽事件 
 
 public static void main(String args[]){ 
 new JiSuanJi(); 
 } 
 
 public JiSuanJi(){ 
  
 initView();     //實(shí)例化相關(guān)對象 
  
 setCenter();     //布局添加控件及相關(guān)控件處理 
 setWest(); 
 setEast(); 
  
 addListener();     //設(shè)置監(jiān)聽 
  
 setFrame();     //對 frame設(shè)置布局及顯示處理 
  
 } 
 
 class ButtonListener implements ActionListener{ 
 int biaozhi=0;     //初始化相關(guān)變量 
 double flag1=0,flag2=0,flag3=0; 
 //@Override 
 public void actionPerformed(ActionEvent e){ 
  //(1)通過 e.getSource(),獲取點(diǎn)擊事件的按鈕來源,作出相應(yīng)處理 
 
  if(e.getSource()==buttondot){ 
  tf.setText("0."); 
  } 
  if(e.getSource()==buttontozero){ 
  tf.setText(""); 
  } 
  if(e.getSource()==buttonzero){ 
  tf.setText(tf.getText()+"0"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttonone){ 
  tf.setText(tf.getText()+"1");//文本框顯示1、2、3.。。 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttontwo){ 
  tf.setText(tf.getText()+"2"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttonthree){ 
  tf.setText(tf.getText()+"3"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttonfour){ 
  tf.setText(tf.getText()+"4"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttonfive){ 
  tf.setText(tf.getText()+"5"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  
  else if(e.getSource()==buttonsix){ 
  tf.setText(tf.getText()+"6"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttonseven){ 
  tf.setText(tf.getText()+"7"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttoneight){ 
  tf.setText(tf.getText()+"8"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  else if(e.getSource()==buttonnine){ 
  tf.setText(tf.getText()+"9"); 
  flag1=Double.parseDouble(tf.getText()); 
  } 
  if(e.getSource()==buttonplus){ 
  tf.setText(""); 
  flag2=flag1; 
  biaozhi=0; 
  } 
  if(e.getSource()==buttonminus){ 
  tf.setText(""); 
  flag2=flag1; 
  biaozhi=1; 
  } 
  if(e.getSource()==buttonmultiple){ 
  tf.setText(""); 
  flag2=flag1; 
  biaozhi=2; 
  } 
  if(e.getSource()==buttondevision){ 
  tf.setText(""); 
  flag2=flag1; 
  biaozhi=3; 
  } 
  if(e.getSource()==buttonsin){ 
  flag3=Math.sin(flag1); 
  tf.setText(flag3+""); 
  } 
  if(e.getSource()==buttonequal){ 
  if(biaozhi==0){ 
   flag3=flag2+flag1; 
  } 
  if(biaozhi==1){ 
   flag3=flag2-flag1; 
  } 
  if(biaozhi==2){ 
   flag3=flag2*flag1; 
  } 
  if(biaozhi==3){ 
   flag3=flag2/flag1; 
  } 
  tf.setText(flag3+""); 
  } 
 } 
 } 
 
 private void initView(){ 
  
 /** 
  * 創(chuàng)建框架、小容器對象、按鈕對象 
  */ 
 tf = new TextField(30);//初始化界面寬度 
 frame = new JFrame("簡易計(jì)算機(jī)"); 
 panelcenter = new JPanel(); 
 panelwest = new JPanel(); 
 paneleast = new JPanel(); 
  
 listener = new ButtonListener(); //實(shí)例化監(jiān)聽對象 
 } 
 
 private void setCenter(){ 
  
 //(1)初始化控件顯示值 
 buttonone=new JButton("1"); 
 buttontwo=new JButton("2"); 
 buttonthree=new JButton("3"); 
 buttonfour=new JButton("4"); 
 buttonfive=new JButton("5"); 
 buttonsix=new JButton("6"); 
 buttonseven=new JButton("7"); 
 buttoneight=new JButton("8"); 
 buttonnine=new JButton("9"); 
  
 //(2)設(shè)置布局樣式 
 panelcenter.setLayout(new GridLayout(3,3));//根據(jù)內(nèi)容多少來布局 
  
 //(3)中央布局添加控件按鈕 
 panelcenter.add(buttonone); 
 panelcenter.add(buttontwo); 
 panelcenter.add(buttonthree); 
 panelcenter.add(buttonfour); 
 panelcenter.add(buttonfive); 
 panelcenter.add(buttonsix); 
 panelcenter.add(buttonseven); 
 panelcenter.add(buttoneight); 
 panelcenter.add(buttonnine); 
 } 
 
 private void setEast(){ 
  
 //(1)設(shè)置控件顯示符號 
 buttonplus=new JButton("+"); 
 buttonminus=new JButton("-"); 
 buttonmultiple=new JButton("*"); 
 buttondevision=new JButton("/"); 
 buttonsin=new JButton("sin"); 
 buttontozero=new JButton("清除"); 
  
 //(2)設(shè)置布局樣式 
 paneleast.setLayout(new GridLayout(3,2)); 
  
 //(3)右布局添加相應(yīng)按鈕控件 
 paneleast.add(buttonplus); 
 paneleast.add(buttonminus); 
 paneleast.add(buttonmultiple); 
 paneleast.add(buttondevision); 
 paneleast.add(buttonsin); 
 paneleast.add(buttontozero); 
  
 } 
 
 private void setWest(){ 
  
 //(1)初始化控件顯示值 
 buttonzero=new JButton("0"); 
 buttondot=new JButton("."); 
 buttonequal = new JButton("="); 
  
 //(2)對這三個(gè)按鈕設(shè)置布局 
 panelwest.setLayout(new GridLayout(3,1)); 
  
 //(3)左邊布局添加按鈕控件,將三個(gè)按鈕添加入布局 
 panelwest.add(buttonzero); 
 panelwest.add(buttondot); 
 panelwest.add(buttonequal); 
  
 } 
 
 private void addListener(){ 
  
 //(1)對 1-9對應(yīng)的按鈕添加監(jiān)聽 
 buttonone.addActionListener(listener); 
 buttontwo.addActionListener(listener); 
 buttonthree.addActionListener(listener); 
 buttonfour.addActionListener(listener); 
 buttonfive.addActionListener(listener); 
 buttonsix.addActionListener(listener); 
 buttonseven.addActionListener(listener); 
 buttoneight.addActionListener(listener); 
 buttonnine.addActionListener(listener); 
  
 //(2)對運(yùn)算符對應(yīng)的按鈕添加監(jiān)聽 
 buttonplus.addActionListener(listener); 
 buttonminus.addActionListener(listener); 
 buttonmultiple.addActionListener(listener); 
 buttondevision.addActionListener(listener); 
 buttonsin.addActionListener(listener); 
 buttontozero.addActionListener(listener); 
  
 //(3)對其與的符號對應(yīng)的按鈕監(jiān)聽 
 buttonzero.addActionListener(listener); 
 buttondot.addActionListener(listener); 
 buttonequal.addActionListener(listener); 
  
 } 
 
 private void setFrame(){ 
  
 frame.setLayout(new BorderLayout()); 
 //將準(zhǔn)備的不同方位的內(nèi)容加入大框架 
 frame.add(paneleast,"East"); 
 frame.add(tf,BorderLayout.NORTH); 
 frame.add(panelwest,BorderLayout.WEST); 
 frame.add(panelcenter,BorderLayout.CENTER); 
 //設(shè)置顏色 
 tf.setBackground(Color.green); 
 frame.pack(); 
 //將框架展開 
 frame.setLocation(500,500); 
 //程序框架在屏幕的位置 
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 //退出進(jìn)程,不加此句,關(guān)閉頁面但程序進(jìn)程仍在后臺運(yùn)行 
 frame.setVisible(true); 
 //一個(gè)圖形界面默認(rèn)都是不可見的,setVisible是把圖形界面設(shè)置為可見 
  
 } 
} 

代碼測試可用。

三、演示與效果

1)、運(yùn)行界面如下:

當(dāng)然了圖形界面大小位置可調(diào),也可初始化其位置與大小。

2)、簡單測試四則運(yùn)算:11*12

好像簡單的不能再簡單了。這個(gè)計(jì)算器寫下來重點(diǎn)是布局的聯(lián)系button的簡單使用

關(guān)于計(jì)算器的精彩文章請查看《計(jì)算器專題》 ,更多精彩等你來發(fā)現(xiàn)!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java ArrayList類的基礎(chǔ)使用講解

    Java ArrayList類的基礎(chǔ)使用講解

    數(shù)組的長度是固定的,無法適應(yīng)數(shù)據(jù)變化的需求。為了解決這個(gè)問題,Java提供了另一個(gè)容器 java.util.ArrayList集合類,讓我們可以更便捷的存儲和操作對象數(shù)據(jù)。本文就將通過示例聊聊ArrayList類的基礎(chǔ)使用,感興趣的可以了解一下
    2022-10-10
  • Java經(jīng)典用法總結(jié)(二)

    Java經(jīng)典用法總結(jié)(二)

    這篇文章主要介紹了Java經(jīng)典用法總結(jié),在本文中,盡量收集一些java最常用的習(xí)慣用法,特別是很難猜到的用法,本文重點(diǎn)講解了java應(yīng)用和輸入輸出常用方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java中的Random()函數(shù)及兩種構(gòu)造方法

    Java中的Random()函數(shù)及兩種構(gòu)造方法

    Java中存在著兩種Random函數(shù)分別是java.lang.Math.Random和java.util.Random,文中給大家介紹了random()的兩種構(gòu)造方法,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • Spring MVC攔截器_動力節(jié)點(diǎn)Java學(xué)院整理

    Spring MVC攔截器_動力節(jié)點(diǎn)Java學(xué)院整理

    Spring MVC的攔截器,是屬于HandlerMapping級別的,可以有多個(gè)HandlerMapping ,每個(gè)HandlerMapping可以有自己的攔截器,具體內(nèi)容詳情大家通過本文學(xué)習(xí)吧
    2017-08-08
  • 基于JavaSwing設(shè)計(jì)和實(shí)現(xiàn)的酒店管理系統(tǒng)

    基于JavaSwing設(shè)計(jì)和實(shí)現(xiàn)的酒店管理系統(tǒng)

    這篇文章主要介紹了基于JavaSwing+mysql的酒店管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn),它可以實(shí)現(xiàn)酒店日常的管理功能包括開房、退房、房間信息、顧客信息管理等
    2021-08-08
  • springboot之聯(lián)表查詢方式

    springboot之聯(lián)表查詢方式

    這篇文章主要介紹了springboot之聯(lián)表查詢方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java異常處理機(jī)制throws舉例詳解

    Java異常處理機(jī)制throws舉例詳解

    這篇文章主要介紹了Java中異常處理機(jī)制,包括finally的使用、異步處理的方式(throws)、以及手動拋出異常,finally用于確保資源釋放,throws用于聲明方法可能拋出的異常,由調(diào)用者處理,手動拋出異常則是在特定條件下主動拋出異常對象,需要的朋友可以參考下
    2024-11-11
  • springboot集成flyway自動創(chuàng)表的詳細(xì)配置

    springboot集成flyway自動創(chuàng)表的詳細(xì)配置

    Flayway是一款數(shù)據(jù)庫版本控制管理工具,支持?jǐn)?shù)據(jù)庫版本自動升級,Migrations可以寫成sql腳本,也可以寫在java代碼里;本文通過實(shí)例代碼給大家介紹springboot集成flyway自動創(chuàng)表的詳細(xì)過程,感興趣的朋友一起看看吧
    2021-06-06
  • 深入剖析Java之String字符串

    深入剖析Java之String字符串

    這篇文章主要為大家詳細(xì)介紹了Java之String字符串,重新帶大家認(rèn)識String字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • MyBatisPlus中批量插入之如何通過開啟rewriteBatchedStatements=true

    MyBatisPlus中批量插入之如何通過開啟rewriteBatchedStatements=true

    這篇文章主要介紹了MyBatisPlus中批量插入之如何通過開啟rewriteBatchedStatements=true問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評論