UserFrm.java
import java.awt.*;
import java.awt.event.*;
public class UserFrm extends Frame implements ActionListener {
private MenuBar jmb = new MenuBar();
private MenuItem item = new MenuItem("退 出");
public static Font font = new Font("宋體", 1, 16); public UserFrm(String title) throws HeadlessException { super(title); //【代碼1】//設定該Frame位置與大小,具體值為(100, 100, 250, 200) setVisible(true); Menu menu = new Menu("文 件"); menu.add(item); item.setFont(font); Panel panelNorth = new Panel(); //【代碼2】//把panelNorth加入表單的北區 add(new Caculator(), BorderLayout.CENTER); item.addActionListener(this); jmb.add(menu); jmb.setFont(font); setMenuBar(jmb); //【代碼3】//用匿名類的方式設計完成表單關閉的監聽和實作關閉的方法 validate();
} public void actionPerformed(ActionEvent e) { Object o = e.getSource(); if (o == item) System.exit(1);
} public static void main(String[] args) { new UserFrm("用戶界面");
}
}
class Caculator extends Panel implements ActionListener, KeyListener {
private TextField tf = new TextField("");
private float x = 0;
private float y = 0;
private int code = 0;
private boolean enable;
private boolean first;
private String str = ""; public Caculator() { setLayout(new BorderLayout()); enable = true; first = true; add(tf, BorderLayout.NORTH); Panel panel = new Panel(); //【代碼4】//把panel設定為GridLayout布局 Button btn = null; //【代碼5】//創建btn并把標題設為1;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼6】//創建btn并把標題設為2;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼7】//創建btn并把標題設為3;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼8】//創建btn并把標題設為+;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼9】//創建btn并把標題設為4;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼10】//創建btn并把標題設為5;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼11】//創建btn并把標題設為6;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼12】//創建btn并把標題設為-;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼13】//創建btn并把標題設為7;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼14】//創建btn并把標題設為8;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 ///【代碼15】//創建btn并把標題設為9;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼16】//創建btn并把標題設為*;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼17】//創建btn并把標題設為0;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼18】//創建btn并把標題設為.;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 //【代碼19】//創建btn并把標題設為/;把btn加入panel中;設定該按鈕的字體格式為UserFrm.font;設定輸入確認監聽;設定鍵盤輸入監聽 btn = new Button("="); panel.add(btn); btn.setFont(UserFrm.font); btn.addActionListener(this); btn.addKeyListener(this); //【代碼20】//把panel加入Caculator的中部區域中
} public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == "+") { //【代碼21】//把文本框里的數字轉成浮點型,賦給x code = 0; this.tf.setText(""); } if (e.getActionCommand() == "-") { //【代碼21】//把文本框里的數字轉成浮點型,賦給x code = 1; this.tf.setText(""); } if (e.getActionCommand() == "*") { //【代碼21】//把文本框里的數字轉成浮點型,賦給x code = 2; this.tf.setText(""); } if (e.getActionCommand() == "/") { x = Float.parseFloat(tf.getText()); code = 3; this.tf.setText(""); } if (e.getActionCommand() != "+" && e.getActionCommand() != "-" && e.getActionCommand() != "*" && e.getActionCommand() != "/" && e.getActionCommand() != "=") { if (enable) { if (first) { tf.setText(e.getActionCommand()); first = false; } else { tf.setText(tf.getText() + e.getActionCommand()); } } else { tf.setText(e.getActionCommand()); enable = true; } } if (e.getActionCommand() == "=") { switch (code) { case 0: //【代碼22】//完成兩個數的加法運算 tf.setText(Float.toString(y)); enable = false; break; case 1: //【代碼23】//完成兩個數的減法運算 tf.setText(Float.toString(y)); enable = false; break; case 2: //【代碼24】//完成兩個數的乘法運算 tf.setText(Float.toString(y)); enable = false; break; case 3: //【代碼25】//完成兩個數的除法運算 tf.setText(Float.toString(y)); enable = false; break; } }
} public void keyPressed(KeyEvent e) { if (e.getKeyChar() == '+') { x = Float.parseFloat(tf.getText()); code = 0; this.tf.setText(""); } if (e.getKeyChar() == '-') { x = Float.parseFloat(tf.getText()); code = 1; this.tf.setText(""); } if (e.getKeyChar() == '*') { x = Float.parseFloat(tf.getText()); code = 2; this.tf.setText(""); } if (e.getKeyChar() == '/') { x = Float.parseFloat(tf.getText()); code = 3; this.tf.setText(""); } if (【代碼26】) {//判斷用鍵盤輸入的數字是否為0-9以及.號,其中的一個。 if (enable) { //【代碼27】//在文本框中輸入一個數字并顯示。當再次輸入數字時,把原資料放大十倍再并上第二次輸入的資料。 //提示:用first確定數字是否第一次輸入資料;用字串合并來放大十倍。 } else { str = Character.toString(e.getKeyChar()); tf.setText(str); enable = true; } } if (【代碼28】) {//判斷用鍵盤輸入的地鍵是否是回車確認鍵。 switch (code) { case 0: y = x + Float.parseFloat(this.tf.getText());//完成兩個數的加法運算 tf.setText(Float.toString(y)); enable = false; break; case 1: y = x - Float.parseFloat(this.tf.getText());//完成兩個數的減法運算 tf.setText(Float.toString(y)); enable = false; break; case 2: y = x * Float.parseFloat(this.tf.getText());//完成兩個數的乘法運算 tf.setText(Float.toString(y)); enable = false; break; case 3: y = x / Float.parseFloat(this.tf.getText());//完成兩個數的除法運算 tf.setText(Float.toString(y)); enable = false; break; } }
} public void keyReleased(KeyEvent arg0) {
} public void keyTyped(KeyEvent arg0) {
}
}
大佬幫忙填一下代碼,自己填的一直出錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/195429.html
標籤:Eclipse
上一篇:字串比較大小問題
