A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Leejuen 中级黑马   /  2013-5-11 12:18  /  1131 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了毕老师的图形用户界面自己做的

不过用了swing。略渣哈哈
  1. MyCalculator
复制代码
  1. package MyCalculator;

  2. import java.awt.*;
  3. import java.awt.event.*;

  4. import javax.swing.*;
  5. public class CalFrame extends JFrame{
  6.         //private static JPanel calP= new JPanel();
  7.         private JPanel calPanel=new JPanel();
  8.         private JPanel tePanel=new JPanel();
  9.         private JPanel buPanel=new JPanel();
  10.         private String[] myButton={"7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/"};
  11.         private JButton[] jb=new JButton[myButton.length];
  12.         private  JTextField caltext = new JTextField("0",20);
  13.         private String str,m,op=null;
  14.         private boolean point=true,flag=true;
  15.         public void iniCalFrame()
  16.         {
  17.                 iniCalPanel();
  18.                 this.setSize(180,240);
  19.                 this.setResizable(false);
  20.                 this.setLocation(300,200);
  21.                 this.add(calPanel);
  22.                 setVisible(true);
  23.         }
  24.         private void iniCalPanel()
  25.         {
  26.                 iniTePanel();
  27.                 iniBuPanel();
  28.                 calPanel.setLayout(new BorderLayout(10, 1));
  29.                 calPanel.add(tePanel,BorderLayout.NORTH);
  30.                 calPanel.add(buPanel,BorderLayout.CENTER);
  31.         }
  32.         private void iniTePanel()
  33.         {
  34.                 tePanel.setLayout(new BorderLayout());
  35.                 caltext.setEditable(false);
  36.                 caltext.setBackground(Color.WHITE);
  37.                 caltext.setHorizontalAlignment(JTextField.RIGHT); //设置文本右对齐
  38.                 tePanel.add(caltext,BorderLayout.NORTH);
  39.         }
  40.         private void iniBuPanel()
  41.         {
  42.                 buPanel.setLayout(new GridLayout(4,4,5,5));
  43.                 for( int i=0;i<jb.length;i++)
  44.                 {
  45.                         jb[i]= new JButton(myButton[i]);
  46.                         if(myButton[i].matches("[0-9]"))
  47.                         {
  48.                                 jb[i].addActionListener(new GetData(myButton[i]));
  49.                         }
  50.                         else if(myButton[i].equals("."))
  51.                         {
  52.                                 jb[i].addActionListener(new ActionListener()
  53.                                 {
  54.                                         public void actionPerformed(ActionEvent e)
  55.                                         {
  56.                                                 str=caltext.getText();
  57.                                                 if(point)
  58.                                                 {
  59.                                                         caltext.setText(str+".");
  60.                                                         point=false;
  61.                                                 }
  62.                                         }
  63.                                 });
  64.                         }
  65.                         else if(myButton[i].equals("+")||myButton[i].equals("-")||myButton[i].equals("*")||myButton[i].equals("/"))
  66.                         {
  67.                                 jb[i].addActionListener(new GetOp(myButton[i]));
  68.                         }
  69.                         else if(myButton[i].equals("="))
  70.                         {
  71.                                 jb[i].addActionListener(new GetAw ());
  72.                         }
  73.                         jb[i].setMargin(new Insets(0,0,0,0));
  74.                         buPanel.add(jb[i]);
  75.                 }
  76.         }
  77.         class GetData implements ActionListener
  78.         {
  79.                 private String mb;
  80.                 public GetData(String mb)
  81.                 {
  82.                         this.mb=mb;
  83.                 }
  84.                 public void actionPerformed(ActionEvent e)
  85.                 {
  86.                         str=caltext.getText();
  87.                         if(flag)
  88.                         {
  89.                                 str=mb;
  90.                                 flag=false;
  91.                         }
  92.                         else
  93.                         {
  94.                                 str=str+mb;
  95.                         }
  96.                         caltext.setText(str);       
  97.                 }
  98.         }
  99.         class GetOp implements ActionListener
  100.         {
  101.                 private String mb;
  102.                 public GetOp(String mb)
  103.                 {
  104.                         this.mb=mb;
  105.                 }
  106.                 public void actionPerformed(ActionEvent e)
  107.                 {
  108.                         m=caltext.getText();
  109.                         op=mb;
  110.                         point=true;
  111.                         flag=true;
  112.                 }
  113.         }
  114.         class GetAw implements ActionListener
  115.         {
  116.                 private String temp;
  117.                 public void actionPerformed(ActionEvent e)
  118.                 {
  119.                         temp=caltext.getText();
  120.                         float a,b;
  121.                         a=Float.parseFloat(m);
  122.                         b=Float.parseFloat(temp);
  123.                         if(op=="+")        a+=b;
  124.                         else if(op=="-") a-=b;
  125.                         else if(op=="*") a*=b;
  126.                         else if(op=="/") a/=b;
  127.                         caltext.setText((new Float(a)).toString());
  128.                         point=true;
  129.                         flag=true;
  130.                 }
  131.         }
  132. }
复制代码
MyCalculator.zip (1.67 KB, 下载次数: 13)

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

2 个回复

倒序浏览
支持下。
回复 使用道具 举报
顶顶顶 羡慕会图形化的大神。现在只会控制台...{:soso_e130:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马