版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Jsp.javapackage 練習題;import java.awt.Button;import java.awt.Color;import java.awt.Font;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.accessibility.AccessibleContext;import javax.swing.JFrame;public class Jsp extends JFrame /* * 聲明計算器里的各種
2、組件 * */private TextField tf_show;/ 顯示框private Button b_0;/ 數(shù)字0private Button b_point;/ 點private Button b_add;/ 加法運算符private Button b_1;/ 數(shù)字1private Button b_2;/ 數(shù)字2private Button b_3;/ 數(shù)字3private Button b_sub;/ 減號private Button b_equal;/ 等號運算符private Button b_4;/ 數(shù)字4private Button b_5;/ 數(shù)字5private B
3、utton b_6;/ 數(shù)字6private Button b_mul;/ 乘號private Button b_fra;/ 分數(shù)private Button b_7;/ 數(shù)字7private Button b_8;/ 數(shù)字8private Button b_9;/ 數(shù)字9private Button b_div;/ 除號private Button b_mod;/ 取余private Button b_back;/ 退格private Button b_ce;/ 清除private Button b_c;/private Button b_sign;/ 加減號private Button b
4、_sqrt;/ 根號private Button b_mc;/ MCprivate Button b_mr;/ MRprivate Button b_ms;/ MSprivate Button b_madd;/ M+private Button b_msub;/ M-private static final Color C_BUTTON = new Color(0, 0, 255);private String opt;/ 記錄用戶點擊的操作private double num1;/ 用來記錄被操作數(shù)(當點擊任何一個操作符時)private double num2;/ 用來記錄操作數(shù)/ 標識量
5、:標志顯示框是追加模式還是替換模式/ 值為true:替換 false:追加private boolean b1 = true;/private int i = 1;private Font f_show = new Font("黑體", Font.BOLD, 18);/ 設置文本框加粗public Jsp(String title) super(title);this.setBounds(300, 300, 242, 320);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLayout(null);t
6、his.setResizable(false);/ 禁用最大化/ this.init();/ this.setVisible(true);Color c=new Color(255,255,255); this.getContentPane().setBackground(c.cyan);/* * 初始化計算器 */public void init() /*-組件初始化-*/tf_show = new TextField("0");b_0 = new Button("0");b_point = new Button(".");b_ad
7、d = new Button("+");b_1 = new Button("1");b_2 = new Button("2");b_3 = new Button("3");b_sub = new Button("-");b_equal = new Button("=");b_4 = new Button("4");b_5 = new Button("5");b_6 = new Button("6");b_mul =
8、new Button("*");b_fra = new Button("1/x");b_7 = new Button("7");b_8 = new Button("8");b_9 = new Button("9");b_div = new Button("/");b_mod = new Button("%");b_back = new Button("");b_ce = new Button("CE");b_c =
9、new Button("C");b_sign = new Button("±");b_sqrt= new Button("");b_mc = new Button("MC");b_mr = new Button("MR");b_ms = new Button("MS");b_madd = new Button("M+");b_msub = new Button("M-");tf_show.setSelectionStart(t
10、f_show.getText().length();/ 光標放到0的右邊/*-組件自定義大小位置-*/tf_show.setBounds(10, 25, 215, 50);b_0.setBounds(20, 250, 75, 25);b_point.setBounds(100, 250, 35, 25);b_add.setBounds(140, 250, 35, 25);b_1.setBounds(20, 220, 35, 25);b_2.setBounds(60, 220, 35, 25);b_3.setBounds(100, 220, 35, 25);b_sub.setBounds(140
11、, 220, 35, 25);b_equal.setBounds(180, 220, 35, 55);b_4.setBounds(20, 190, 35, 25);b_5.setBounds(60, 190, 35, 25);b_6.setBounds(100, 190, 35, 25);b_mul.setBounds(140, 190, 35, 25);b_fra.setBounds(180, 190, 35, 25);b_7.setBounds(20, 160, 35, 25);b_8.setBounds(60, 160, 35, 25);b_9.setBounds(100, 160, 3
12、5, 25);b_div.setBounds(140, 160, 35, 25);b_mod.setBounds(180, 160, 35, 25);b_back.setBounds(20, 130, 35, 25);b_ce.setBounds(60, 130, 35, 25);b_c.setBounds(100, 130, 35, 25);b_sign.setBounds(140, 130, 35, 25);b_sqrt.setBounds(180, 130, 35, 25);b_mc.setBounds(20, 100, 35, 25);b_mr.setBounds(60, 100, 3
13、5, 25);b_ms.setBounds(100, 100, 35, 25);b_madd.setBounds(140, 100, 35, 25);b_msub.setBounds(180, 100, 35, 25);/*-組件屬性設置-*/b_0.setForeground(C_BUTTON);/ 加前景色b_point.setForeground(C_BUTTON);b_add.setForeground(C_BUTTON);b_1.setForeground(C_BUTTON);b_2.setForeground(C_BUTTON);b_3.setForeground(C_BUTTON
14、);b_sub.setForeground(C_BUTTON);b_equal.setForeground(C_BUTTON);b_4.setForeground(C_BUTTON);b_5.setForeground(C_BUTTON);b_6.setForeground(C_BUTTON);b_mul.setForeground(C_BUTTON);b_fra.setForeground(C_BUTTON);b_7.setForeground(C_BUTTON);b_8.setForeground(C_BUTTON);b_9.setForeground(C_BUTTON);b_div.se
15、tForeground(C_BUTTON);b_mod.setForeground(C_BUTTON);b_back.setForeground(C_BUTTON);b_ce.setForeground(C_BUTTON);b_c.setForeground(C_BUTTON);b_sign.setForeground(C_BUTTON);b_sqrt.setForeground(C_BUTTON);b_mc.setForeground(C_BUTTON);b_mr.setForeground(C_BUTTON);b_ms.setForeground(C_BUTTON);b_madd.setF
16、oreground(C_BUTTON);b_msub.setForeground(C_BUTTON);tf_show.setFont(f_show);tf_show.setForeground(C_BUTTON);/*-設置組件的事件監(jiān)聽-*/b_1.addActionListener(new ActionLin();/ addActionListener是個接口,不能newb_2.addActionListener(new ActionLin();b_3.addActionListener(new ActionLin();b_sub.addActionListener(new OptList
17、ener();b_equal.addActionListener(new equalListener();b_4.addActionListener(new ActionLin();b_5.addActionListener(new ActionLin();b_6.addActionListener(new ActionLin();b_mul.addActionListener(new OptListener();b_fra.addActionListener(new OptListener();b_7.addActionListener(new ActionLin();b_8.addActi
18、onListener(new ActionLin();b_9.addActionListener(new ActionLin();b_div.addActionListener(new OptListener();b_mod.addActionListener(new OptListener();b_back.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String str = tf_show.getText();if (!str.equals("0")
19、tf_show.setText(str.substring(0,str.length()-1); elsetf_show.setText("0"););b_ce.addActionListener(new OptListener();b_c.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) tf_show.setText("0"););/*b_sign.addActionListener(new ActionListener() public
20、 void actionPerformed(ActionEvent e) String str = tf_show.getText();for(;i>0;)if(i%2!=0)tf_show.setText("-"+str);elseString str1 = str.substring(1, str.length();tf_show.setText(str1);i+;break;);*/b_sign.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) Str
21、ing str=tf_show.getText();if(str.indexOf("-")=-1)str="-"+str;elsestr=str.substring(1);tf_show.setText(str););b_sqrt.addActionListener(new OptListener();b_0.addActionListener(new ActionLin();b_point.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)
22、/ 1-獲取文本框的值String str = tf_show.getText();if (str.indexOf(".") = -1) / 2-追加一個點str = str + "."/ 3-重新設置回去tf_show.setText(str););b_add.addActionListener(new OptListener();/*-添加組件-*/this.add(tf_show);this.add(b_0);this.add(b_point);this.add(b_add);this.add(b_1);this.add(b_2);this.add
23、(b_3);this.add(b_sub);this.add(b_equal);this.add(b_4);this.add(b_5);this.add(b_6);this.add(b_mul);this.add(b_fra);this.add(b_7);this.add(b_8);this.add(b_9);this.add(b_div);this.add(b_mod);this.add(b_back);this.add(b_ce);this.add(b_c);this.add(b_sign);this.add(b_sqrt);this.add(b_mc);this.add(b_mr);th
24、is.add(b_ms);this.add(b_madd);this.add(b_msub);private void show(String num) tf_show.setText(num);/* * 內部類:定義在一個類里的類 1-不能是public 2-內部類相當于本類的一個方法 3-可以訪問外部類的成員屬性 */ 操作數(shù)的事件監(jiān)聽類class ActionLin implements ActionListener public void actionPerformed(ActionEvent e) / 要執(zhí)行的事/ 獲取事件源Button b = (Button) e.getSour
25、ce();/ getSource()是事件源String num = tf_show.getText();/ 獲取事件源上的文本,將文本設置給顯示框if (b1 | num.equals("0") / 替換模式tf_show.setText(b.getLabel();b1 = false;/ 將模式改為追加 else String str = tf_show.getText();tf_show.setText(str + b.getLabel();tf_show.setSelectionStart(tf_show.getText().length();/ 光標放到0的右邊/
26、 操作符的事件監(jiān)聽類class OptListener implements ActionListener public void actionPerformed(ActionEvent e) Button b = (Button) e.getSource();/ getSource()是事件源/* * 1-記錄操作符之前先判斷在此之前有沒有點擊過運算符 2-如果有:則先把前面的運算結果算出來 3-如果沒有:則直接記錄 4- * 點過:opt不為null */if (null != opt) /* * 1-拿到現(xiàn)在文本框里的數(shù)(加數(shù)) 2-進行運算 3-運算完之后將結果顯示在文本框里邊 */n
27、um2 = Double.parseDouble(tf_show.getText();if (opt.equals("+") double num = num1 + num2;tf_show.setText(String.valueOf(num); else if (opt.equals("-") double num = num1 - num2;tf_show.setText(String.valueOf(num); else if (opt.equals("*") double num = num1 * num2;tf_show.
28、setText(String.valueOf(num); else if (opt.equals("/") double num = num1 / num2;tf_show.setText(String.valueOf(num);/ 記錄操作符opt = b.getLabel();/ 記錄被加數(shù)num1 = Double.parseDouble(tf_show.getText();/ System.out.println(opt);b1 = true;/ 剛點完操作符,將模式改為替換/ 定義等于的事件監(jiān)聽類class equalListener implements ActionListener public void actionPerformed(ActionEvent e) num2 = Double.parseDouble(tf_show.getText();/ 獲取操作符/ 計算結果if (opt.equals("+") double add = num1 + num2;if (add = (int) add) tf_show.setText(String.valueOf(int) add); else tf_show.setTex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《肺栓塞診療及護理》課件
- 【創(chuàng)新設計】2021屆高考化學(廣東專用)一輪總復習限時訓練:第四章-課時1-碳、硅及其化合物
- 【創(chuàng)新設計】2022年高三生物(人教版)一輪復習-基礎課時案33-種群的特征和數(shù)量變化-考點探究
- 【同步備課】2020年高中物理教學設計(新人教必修二)7.4《重力勢能》2
- 【名師一號】2020-2021學年新課標B版高中數(shù)學必修5-第一章-解三角形-測試題
- 【名師課堂-備課包】2013-2020學年高一下學期化學人教版必修2教案-第三章第1節(jié)
- 【同步課堂】2020年化學人教版選修5教案:1-1-有機化合物的分類
- 《創(chuàng)新心理學》課件
- 小學五年級下冊科學教學計劃:啟發(fā)創(chuàng)造的思維能力
- 《從語言的適切性》課件
- 培養(yǎng)學生深度思考的能力
- 中醫(yī)醫(yī)院運營方案
- 【瑞幸咖啡財務分析報告(附財務報表)5300字(論文)】
- 過敏性鼻炎-疾病研究白皮書
- 烏頭堿中毒急診科培訓課件-
- 三軸水泥攪拌樁施工質量措施
- 貴州茅臺2023審計報告
- 幼兒園學前教育五以內的數(shù)字比大小練習題
- 高速鐵路沉降觀測與評估
- IT項目周報模板
- 地脈動測試原理及應用
評論
0/150
提交評論