實驗十一:圖形界面二

實驗程序如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Example1 extends JFrame {
?private int add=1,sub=2,mul=3,div=4;
?private int op=0;
?boolean ifOp;
?private String output="0";
?private Button[] jba=new Button[]{
?new Button("7"),new Button("8"),new Button("9"),new Button("+"),
?new Button("4"),new Button("5"),new Button("6"),new Button("-"),
?new Button("1"),new Button("2"),new Button("3"),new Button("*"),
?new Button("0"),new Button("."),new Button("="),new Button("/")};
?private JPanel jpt=new JPanel();
?private JPanel jpb=new JPanel();
?private JTextField jtf=new JTextField("");
?private Example1(){
? jpt.setLayout(new BorderLayout());
? jpt.add(jtf);
? this.add(jpt,BorderLayout.NORTH);
? jpb.setLayout(new GridLayout(4,4));
? for(int i=0;i<jba.length;i++){
? jpb.add(jba[i]);
? if(i==3||i==7||i==11||i==15||i==14)
? jba[i].addActionListener(new setOperate_Act());
? else
? jba[i].addActionListener(new setLabel_Act());
? }
? this.add(jpb,BorderLayout.CENTER);
? this.setSize(200, 200);?
? this.setResizable(false);
? this.setVisible(true);
? this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
?}
?private void operate(String x){double x1=Double.valueOf(x);
?double y=Double.valueOf(output);
?switch(op){
?case 0:output=x;break;
?case 1:output=String.valueOf(y+x1);break;
?case 2:output =String.valueOf(y-x1);break;
?case 3:output =String.valueOf(y*x1);break;
?case 4:
?if(x1!=0) output=String.valueOf(y/x1);
?else output="不能為0";
?break;
?}
?}
?public String add(String x){
?operate(x);
?op=add;
?return output;
?}
?public String subtract(String x){
? operate(x);
? op=sub;
?return output;
?}
?public String multiply(String x){
? operate(x);
? op=mul;
?return output;
?}
?public String divide(String x){
? operate(x);
? op=div;
?return output;
?}
?public String Equals(String x){
? operate(x);
? op=0;
?return output;
?}
?public void opClean(){
? op=0;
? output="0";
?}
?class setOperate_Act implements ActionListener{
? public void actionPerformed(ActionEvent e) {
? if(e.getSource()==jba[3]){
? jtf.setText(add(jtf.getText()));
? ifOp=true;
? }
? else if(e.getSource()==jba[7]){
? jtf.setText(subtract(jtf.getText()));
? ifOp=true;
? }
? else if(e.getSource()==jba[11]){
? jtf.setText(multiply(jtf.getText()));
? ifOp=true;
? }
? else if(e.getSource()==jba[15]){
? jtf.setText(divide(jtf.getText()));
? ifOp=true;
? }
? else if(e.getSource()==jba[14]){
? jtf.setText(Equals(jtf.getText()));
? ifOp=true;
? }
? }
? }
? class setLabel_Act implements ActionListener{
? public void actionPerformed(ActionEvent e) {
? Button tempb=(Button)e.getSource();
? if(ifOp){
? jtf.setText(tempb.getLabel());
? ifOp=false;
? }else {
? jtf.setText(jtf.getText()+tempb.getLabel());
? }
? }
? }
?
?public static void main(String[] args) {
? new Example1();
?}
}

轉載于:https://www.cnblogs.com/Y-CQ/p/11000285.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386663.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker安裝部署ELK教程 (Elasticsearch+Kibana+Logstash)

Elasticsearch 是個開源分布式搜索引擎&#xff0c;它的特點有&#xff1a;分布式&#xff0c;零配置&#xff0c;自動發現&#xff0c;索引自動分片&#xff0c;索引副本機制&#xff0c;restful風格接口&#xff0c;多數據源&#xff0c;自動搜索負載等。 Logstash 是一個完…

阿里P8面試官都說太詳細了,面試資料分享

背景 知乎客戶端中有一個自己維護的 Hybrid 框架&#xff0c;在此基礎上開發了一些 Hybrid 頁面&#xff0c;當需要前端或者客戶端開發接口的時候&#xff0c;就涉及到聯調的問題。 和一般的 前端 <> 服務端&#xff0c;或者 客戶端 <> 服務端 類似&#xff0c;前…

virtual和override

偶然間看到的題&#xff0c;借此記錄。 class Program{static void Main(string[] args){D d new D(); //第一個D是申明類&#xff0c;第二個D是實例類A a d;B b d;C c d;a.F();b.F();c.F();d.F();}class A{public virtual void F() { Console.WriteLine("A.F")…

阿里內部資料!如何試出一個Android開發者真正的水平?系列教學

前言 馬爸爸總結了一句話&#xff1a;跳槽&#xff0c;要么是錢不到位&#xff0c;要么是受了委屈。 我給自己這次的跳槽經歷做了一個分析&#xff0c;希望能對那些想換工作的朋友有所幫助。 許多朋友想換工作&#xff0c;但是對“換工作”的理解可能僅限于寫簡歷、投簡歷、…

CentOS7 linux下yum安裝redis以及使用

CentOS7 linux下yum安裝redis以及使用 1.安裝redis數據庫 1 yum install redis 2.下載fedora的epel倉庫 yum install epel-release 3.啟動redis服務 systemctl start redis 4.查看redis狀態 systemctl status redis systemctl stop redis 停止服務 systemctl restart r…

Codeforces 1182A Filling Shapes

題目鏈接&#xff1a;http://codeforces.com/problemset/problem/1182/A 思路&#xff1a;n為奇數時不可能完全填充&#xff0c;ans 0。發現若要完全填充&#xff0c;每倆列可產生倆種情況&#xff0c;所以為 ans 2n/2 AC代碼&#xff1a; 1 #include<bits/stdc.h>2 us…

阿里大神最佳總結Flutter進階學習筆記,技術詳細介紹

開頭 很多人工作了十年&#xff0c;但只是用一年的工作經驗做了十年而已。 高級工程師一直是市場所需要的&#xff0c;然而很多初級工程師在進階高級工程師的過程中一直是一個瓶頸。 移動研發在最近兩年可以說越來越趨于穩定&#xff0c;因為越來越多人開始學習Android開發&…

Mysql 允許所有IP訪問

$ mysql -u root -p Enter password:mysql> use mysql#mysql> GRANT ALL ON *.* to root192.168.1.4 IDENTIFIED BY your-root-password; mysql> GRANT ALL ON *.* to root% IDENTIFIED BY root; mysql> FLUSH PRIVILEGES;

貪心算法小結2

F-Ants 一隊螞蟻在一根水平桿上行走&#xff0c;每只螞蟻固定速度 1cm/s. 當一只螞蟻走到桿的盡頭時&#xff0c;立即從稈上掉落. 當兩只螞蟻相遇時它們會掉頭向相反的方向前進. 我們知道每只螞蟻在桿上的初始位置, 但是, 我們不知道螞蟻向哪個方向前行. 你的任務是計算所有螞蟻…

掌握這些Android開發熱門前沿知識,跳槽薪資翻倍

前言 這是一篇軟文、但是絕對不是雞湯&#xff1b;為啥不是呢&#xff1f;因為我文筆太差…偶爾矯情發發牢騷&#xff08;勿噴&#xff09; 說說程序猿行業 現在社會上給IT行業貼上了幾個標簽&#xff1a;高薪、高危、高大上、禿頂&#xff08;哈哈&#xff09;。這些標簽我…

linux環境-docker安裝rabbitmq

1、進入docker hub鏡像倉庫地址&#xff1a;https://hub.docker.com/ 2、搜索rabbitMq&#xff0c;進入官方的鏡像&#xff0c;可以看到以下幾種類型的鏡像&#xff1b;我們選擇帶有“mangement”的版本&#xff08;包含web管理頁面&#xff09;&#xff1b; 3、拉取鏡像 doc…

揭秘ARouter路由機制,源碼+原理+手寫框架

前言 每個程序員都有一個夢想&#xff0c;那就是進一線互聯網公司深造&#xff0c;不要跟我說你不想進去&#xff0c;如果給你一個這樣的平臺&#xff0c;不管是薪資待遇還是接觸的高度來說&#xff0c;對我們程序員來說都是一個機會&#xff0c;我以前有一個同事&#xff0c;…

docker 安裝 nacos/nacos-server 鏡像并配置本地數據庫

docker pull nacos/nacos-server 啟動鏡像 這里啟動容器的時候參數配置我就不在詳解了&#xff0c;不明白的話&#xff0c;評論區留言&#xff0c;有不會的問題一定要及時詢問&#xff0c;期待你的評論呦&#xff01; docker run --env MODEstandalone --name nacos -d -p 884…

初中 英文

英語過去式與過去完成進行時是在英語語法學習中&#xff0c;非常重要的兩種語法&#xff0c;直接影響著英語能力的好壞。熟練掌握這兩種語法對于學習者來說是至關重要的&#xff0c;今天就為大家整理了有關英語過去式與過去完成進行時的相關用法解析&#xff0c;希望大家可以認…

揭秘!雙非渣本Android四年磨一劍,學習路線+知識點梳理

第一次觀看我文章的朋友&#xff0c;可以關注、點贊、轉發一下&#xff0c;每天分享各種干貨技術和程序猿趣事 由于涉及到的面試題較多導致篇幅較長&#xff0c;我根據這些面試題所涉及到的常問范圍總結了并做出了一份學習進階路線圖???????及面試題答案免費分享給大家&…

Windows上PostgreSQL安裝配置教程

這篇文章主要為大家詳細介紹了Windows上PostgreSQL安裝配置教程&#xff0c;具有一定的參考價值&#xff0c;感興趣的小伙伴們可以參考一下 PostgreSQL的擴展PostGIS是最著名的開源GIS數據庫。 安裝PostgreSQL是第一步。 1.下載PostgreSQL的二進制安裝文件。 PostgreSQL官網…

快遞100接口的調用過程

前言 大部分的商城都需要調用快遞的接口來記錄商城的物流信息&#xff0c;這里就給出一種快遞接口&#xff08;快遞100&#xff09;調用的方法。 正文 一、官方文檔 1. 官方文檔的地址為&#xff1a; https://www.kuaidi100.com/openapi/api_subscribe.shtml 二、具體實現 1. 商…

搞懂開源框架設計思想真的這么重要嗎?終獲offer

正文 從我個人的角度寫寫30多歲碼工的感受&#xff1a;的確是受年齡壓力開始增大了。比如二十多歲的小年輕&#xff0c;可能什么都懂&#xff0c;對組里的東西很熟悉。有時候我也懷疑自己是不是智商不夠&#xff0c;是不是自學能力太差&#xff0c;是不是基礎不行&#xff0c;…

gitlab 修改HTTP連接方式中的IP和端口

修改gitlab.yml文件 cd /opt/gitlab/embedded/service/gitlab-rails/config vim gitlab.yml 修改gitlab host&#xff1a;要修改的IPport&#xff1a;要修改的端口重啟gitlab gitlab-ctl restart

Coding Interview Guide -- 向有序的環形單鏈表中插入新節點

【題目】 一個環形單鏈表從頭節點head開始不降序&#xff0c;同時由最后的節點指回頭節點。給定這樣一個環形單鏈表的頭節點head和一個整數num&#xff0c;請生成節點值為num的新節點&#xff0c;并插入到這個環形鏈表中&#xff0c;保證調整后的鏈表依然有序 1 public Nod…