最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

?Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器

 更新時(shí)間:2022年01月25日 15:01:45   作者:智子、  
這篇文章主要介紹了Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器,下面文章圍繞Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1.簡單計(jì)算器

使用AWT編程,FrameNORTH區(qū)域放置TextField組件,將指定為4行5列GridLayout布局管理器的Panel放置于Frame中部區(qū)域,其中填充操作符和操作數(shù)按鈕。
 按鈕觸發(fā)事件源,對(duì)按鈕添加ActionListener注冊監(jiān)聽。自定義NumListener(操作數(shù)監(jiān)聽類)、OperatListener(操作符監(jiān)聽類)、EqualListener(’=‘符監(jiān)聽類)和匿名內(nèi)部類(如b[11]’-'符監(jiān)聽類)分情況對(duì)按鈕事件進(jìn)行監(jiān)聽并響應(yīng)。
注意:整數(shù)、浮點(diǎn)、負(fù)數(shù)以及連續(xù)運(yùn)算均可以。

代碼:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import static java.awt.Color.blue;

public class Calculation {
? ? //操作數(shù)
? ? double x,y;
? ? String op;
? ? boolean flag;
? ? Frame frame = new Frame("智子的計(jì)算器!");
? ? TextField tf = new TextField(30);
? ? Button[] b = new Button[20];

? ? public void init(){
? ? ? ? //北部區(qū)域放置文本框
? ? ? ? frame.add(tf,BorderLayout.NORTH);
? ? ? ? Panel panel = new Panel();
? ? ? ? panel.setLayout(new GridLayout(4,5,2,2));
? ? ? ? //設(shè)置按鈕
? ? ? ? String s = "+-*/%";
? ? ? ? for(int i=0;i<10;i++) {//運(yùn)算數(shù)
? ? ? ? ? ? b[i] = new Button(i + "");
? ? ? ? ? ? b[i].setForeground(blue);
? ? ? ? }
? ? ? ? for(int i=0;i<5;i++) {//運(yùn)算符
? ? ? ? ? ? b[i+10]=new Button(s.charAt(i)+"");
? ? ? ? ? ? b[i+10].setForeground(blue);
? ? ? ? }
? ? ? ? String[] t = {"sqrt","^2","^3","=","."};
? ? ? ? for(int i=0;i<5;i++){
? ? ? ? ? ? b[i+15]=new Button(t[i]);
? ? ? ? ? ? b[i+15].setForeground(blue);
? ? ? ? }

? ? ? ? //按鈕注冊監(jiān)聽
? ? ? ? for (int i = 0; i < 10; i++) {//操作數(shù)注冊監(jiān)聽
? ? ? ? ? ? b[i].addActionListener(new NumListener());
? ? ? ? }

? ? ? ? for (int i = 10; i < 18; i++) {//操作符注冊監(jiān)聽
? ? ? ? ? ? if(i==11) continue;
? ? ? ? ? ? b[i].addActionListener(new OperatListener());
? ? ? ? }
? ? ? ? b[11].addActionListener(new ActionListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void actionPerformed(ActionEvent e) {
? ? ? ? ? ? ? ? if(!flag){
? ? ? ? ? ? ? ? ? ? tf.setText("-");
? ? ? ? ? ? ? ? ? ? flag = true;
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? x = Double.parseDouble(tf.getText());
? ? ? ? ? ? ? ? ? ? op = e.getActionCommand();
? ? ? ? ? ? ? ? ? ? flag = false;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? //“=”注冊監(jiān)聽
? ? ? ? b[18].addActionListener(new EqualListener());
? ? ? ? //“.”注冊監(jiān)聽
? ? ? ? b[19].addActionListener(new NumListener());

? ? ? ? //將按鈕加入panel
? ? ? ? for (int i = 0; i < 20; i++) {
? ? ? ? ? ? panel.add(b[i]);
? ? ? ? }

? ? ? ? //設(shè)置中部按鈕
? ? ? ? frame.add(panel);

? ? ? ? //窗口監(jiān)聽器 注冊監(jiān)聽
? ? ? ? frame.addWindowListener(new WindowAdapter() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void windowClosing(WindowEvent e) {
? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? }
? ? ? ? });

? ? ? ? //設(shè)置窗口最優(yōu)并可見
? ? ? ? frame.pack();
? ? ? ? frame.setVisible(true);
? ? }

? ? //數(shù)字按鈕監(jiān)聽器類
? ? public class NumListener implements ActionListener{
? ? ? ? @Override
? ? ? ? public void actionPerformed(ActionEvent e) {
? ? ? ? ? ? String t = e.getActionCommand();
? ? ? ? ? ? String s = tf.getText();
? ? ? ? ? ? if(flag==false)
? ? ? ? ? ? ? ? tf.setText(t);
? ? ? ? ? ? else
? ? ? ? ? ? ? ? tf.setText(s+t);
? ? ? ? ? ? flag = true;
? ? ? ? }
? ? }

? ? //操作符按鈕監(jiān)聽器類
? ? public class OperatListener implements ActionListener{
? ? ? ? @Override
? ? ? ? public void actionPerformed(ActionEvent e) {
? ? ? ? ? ? x = Double.parseDouble(tf.getText());
? ? ? ? ? ? op = e.getActionCommand();
? ? ? ? ? ? flag = false;
? ? ? ? }
? ? }

? ? //等號(hào)按鈕監(jiān)聽器類
? ? public class EqualListener implements ActionListener{
? ? ? ? @Override
? ? ? ? public void actionPerformed(ActionEvent e) {
? ? ? ? ? ? y = Double.parseDouble(tf.getText());
? ? ? ? ? ? flag = true;
? ? ? ? ? ? switch(op){
? ? ? ? ? ? ? ? case "+":tf.setText(x+y+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "-":tf.setText(x-y+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "*":tf.setText(x*y+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "/":
? ? ? ? ? ? ? ? ? ? if(y!=0)
? ? ? ? ? ? ? ? ? ? ? ? tf.setText(x/y+"");
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? tf.setText("inf");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "%":tf.setText(x%y+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "sqrt":tf.setText((int)Math.sqrt(x)+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "^2":tf.setText(y*y+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "^3":tf.setText(y*y*y+"");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }

? ? public static void main(String[] args) {

? ? ? ? new Calculation().init();
? ? }
}

到此這篇關(guān)于 Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器的文章就介紹到這了,更多相關(guān) Java圖形化界面編程實(shí)現(xiàn)計(jì)算器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • selenium+java+chrome環(huán)境搭建的方法步驟

    selenium+java+chrome環(huán)境搭建的方法步驟

    這篇文章主要介紹了selenium+java+chrome環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • java讀取excel表格的方法

    java讀取excel表格的方法

    這篇文章主要為大家詳細(xì)介紹了java讀取excel表格的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 如何在Java中優(yōu)雅地使用正則表達(dá)式詳解

    如何在Java中優(yōu)雅地使用正則表達(dá)式詳解

    這篇文章主要給大家介紹了關(guān)于如何在Java中優(yōu)雅地使用正則表達(dá)式的相關(guān)資料,正則表達(dá)式就是一個(gè)字符串,但和普通的字符串不同的是,正則表達(dá)式是對(duì)一組相似字符串的抽象,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • 使用IDEA異常斷點(diǎn)來定位java.lang.ArrayStoreException的問題

    使用IDEA異常斷點(diǎn)來定位java.lang.ArrayStoreException的問題

    這篇文章主要介紹了使用IDEA異常斷點(diǎn)來定位java.lang.ArrayStoreException的問題,平常開發(fā)過程中面對(duì)這種描述不夠清楚,無法定位具體原因的問題該如何處理,下面我們來一起學(xué)習(xí)一下吧
    2019-06-06
  • Spring Cloud Gateway實(shí)現(xiàn)灰度發(fā)布方案

    Spring Cloud Gateway實(shí)現(xiàn)灰度發(fā)布方案

    灰度發(fā)布是在微服務(wù)中的表現(xiàn)為同一服務(wù)同時(shí)上線不同版本,讓一部分用戶使用新版本來驗(yàn)證新特性,如果驗(yàn)證沒有問題,則將所有用戶都遷移到新版本上,本文就來介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2023-12-12
  • JDK1.7中HashMap的死循環(huán)問題及解決方案

    JDK1.7中HashMap的死循環(huán)問題及解決方案

    這篇文章主要為大家介紹了JDK1.7中HashMap的死循環(huán)問題及解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 解決idea中Terminal終端無法執(zhí)行GIT命令+Terminal 中文亂碼問題

    解決idea中Terminal終端無法執(zhí)行GIT命令+Terminal 中文亂碼問題

    這篇文章主要介紹了解決idea中Terminal終端無法執(zhí)行GIT命令+Terminal 中文亂碼問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot實(shí)現(xiàn)excel文件生成和下載

    SpringBoot實(shí)現(xiàn)excel文件生成和下載

    這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)excel文件生成和下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • Springmvc獲取前臺(tái)請(qǐng)求數(shù)據(jù)過程解析

    Springmvc獲取前臺(tái)請(qǐng)求數(shù)據(jù)過程解析

    這篇文章主要介紹了Springmvc獲取前臺(tái)請(qǐng)求數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用@RequestParam 綁定List參數(shù)

    使用@RequestParam 綁定List參數(shù)

    這篇文章主要介紹了使用@RequestParam 綁定List參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

临泉县| 铁岭县| 穆棱市| 三门县| 霍林郭勒市| 通河县| 吴忠市| 华亭县| 兴和县| 南安市| 永清县| 获嘉县| 温州市| 西林县| 镶黄旗| 馆陶县| 临猗县| 尉犁县| 旬邑县| 孟连| 青河县| 邵武市| 大洼县| 沿河| 纳雍县| 永兴县| 白玉县| 晋江市| 张家川| 锦屏县| 江源县| 宕昌县| 堆龙德庆县| 德庆县| 星子县| 眉山市| 延吉市| 迁安市| 赣州市| 淮阳县| 晋中市|