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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package gui;

  2. import java.awt.BorderLayout;
  3. import java.awt.GridLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;

  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JPanel;
  10. import javax.swing.JTextField;

  11. public class NewTestFrame extends FatherFrame{
  12.         private String s="";
  13.         private String[] s1 = new String[2];
  14.         private int[] a = new int[2];
  15.         //******************************************组件方法定义**********************************************************//
  16.         JFrame jf = new JFrame("我的窗体");//创建窗体
  17.         JPanel jp = new JPanel();//创建容器
  18.         JPanel jp1 = new JPanel();
  19.         JButton jb = new JButton("0");//创建按钮
  20.         JButton jb1 = new JButton("1");
  21.         JButton jb2 = new JButton("2");
  22.         JButton jb3 = new JButton("3");
  23.         JButton jb4 = new JButton("4");
  24.         JButton jb5 = new JButton("5");
  25.         JButton jb6 = new JButton("6");
  26.         JButton jb7 = new JButton("7");
  27.         JButton jb8 = new JButton("8");
  28.         JButton jb9 = new JButton("9");
  29.         JButton jb10 = new JButton("+");
  30.         JButton jb11 = new JButton("-");
  31.         JButton jb12 = new JButton("*");
  32.         JButton jb13 = new JButton("/");
  33.         JButton jb14 = new JButton("=");
  34.         JButton jb15 = new JButton("CE");
  35.         JTextField jtf = new JTextField(20);//创建文本
  36.         final JLabel label = new JLabel("=");//内部匿名类只能使用外部类的常量属性
  37.         /**
  38.          * @param args
  39.          */
  40.         public void jiSuanQi(){
  41.                
  42.         }
  43. //*******************************************运算方法*******************************************//
  44.         public int jiaFa(int a,int b){//加法
  45.                 return a+b;
  46.         }
  47.        
  48.         public int jianFa(int a,int b){//减法
  49.                 return a-b;
  50.         }
  51.        
  52.         public int chengFa(int a,int b){//乘法
  53.                 return a*b;
  54.         }
  55.        
  56.         public int chuFa(int a,int b){//除法
  57.                 return a/b;
  58.         }
  59.        

  60.         @Override
  61.         public void initButton() {//添加按钮
  62.                 // TODO Auto-generated method stub
  63.                 //**********************************************按钮添加****************************************************//
  64.                 jp.add(jtf);//向容器中添加文本框
  65.                 jtf.setBounds(40, 20,400, 20);
  66.                
  67.                 jp.add(label);
  68.                 label.setBounds(80, 20, 200, 20);
  69.                 jp1.setLayout(new GridLayout(4,4,5,5));//网格布局4*4,间距5*5
  70.                 jp1.add(jb);//向容器中添加按钮
  71.                 jp1.add(jb1);
  72.                 jp1.add(jb2);
  73.                 jp1.add(jb3);
  74.                 jp1.add(jb4);
  75.                 jp1.add(jb5);
  76.                 jp1.add(jb6);
  77.                 jp1.add(jb7);
  78.                 jp1.add(jb8);
  79.                 jp1.add(jb9);
  80.                 jp1.add(jb10);
  81.                 jp1.add(jb11);
  82.                 jp1.add(jb12);
  83.                 jp1.add(jb13);
  84.                 jp1.add(jb14);
  85.                 jp1.add(jb15);
  86.                 jf.add(jp,BorderLayout.NORTH);//向窗口中添加文本框,并将文本框放在北面
  87.                 jf.add(jp1);//
  88.         }
  89.         @Override
  90.         public void initFrame() {//加载窗体
  91.                 // TODO Auto-generated method stub
  92.                 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击窗体关闭按钮时的效果
  93.                 jf.setBounds(100, 100, 350, 350);//设置窗体的大小
  94.                 jf.setResizable(false);//设置窗体是否可以拖拽
  95.                 jf.setVisible(true);//设置窗体可以显示
  96.         }
  97.         @Override
  98.         public void initLayout() {//设置自定义布局
  99.                 // TODO Auto-generated method stub
  100.                
  101.         }
  102.         @Override
  103.         public void initListener() {
  104.                 // TODO Auto-generated method stub
  105. //*******************************************处理事件****************************************************//       
  106.                 ActionListener listener = new ActionListener(){
  107.                         public void actionPerformed(ActionEvent e) {
  108.                                 //e.getActionCommand()
  109.                                 //随着按钮点击的不同获取不同按钮上的文字
  110.                                
  111.                                 if(!e.getActionCommand().equals("+")&&!e.getActionCommand().equals("-")&&!e.getActionCommand().equals("/")&&!e.getActionCommand().equals("*")&&!e.getActionCommand().equals("CE")&&!e.getActionCommand().equals("=")){
  112.                                         System.out.print(e.getActionCommand());//输出选择值
  113.                                         s += e.getActionCommand();//如果e.getActionCommand()不为=-*/+ce,则为0-9的数字,
  114.                                 }
  115.                                
  116.                                 if(e.getActionCommand().equals("+")||e.getActionCommand().equals("-")||e.getActionCommand().equals("/")||e.getActionCommand().equals("*")){
  117.                                         if(a[0] == 0){//如果是第一次计算,或清空后的重新计算,执行
  118.                                                 a[0] = Integer.parseInt(s);
  119.                                                 s = "";
  120.                                                 s1[0] = e.getActionCommand();
  121.                                                 System.out.print(e.getActionCommand());//输出选择值
  122.                                         }else{//累加计算执行
  123.                                                 a[1] = Integer.parseInt(s);
  124.                                                 if(s1[0].equals("+")){
  125.                                                         a[0] = NewTestFrame.this.jiaFa(a[0], a[1]);
  126.                                                 }else if(s1[0].equals("-")){
  127.                                                         a[0] = NewTestFrame.this.jianFa(a[0], a[1]);
  128.                                                 }else if(s1[0].equals("*")){
  129.                                                         a[0] = NewTestFrame.this.chengFa(a[0], a[1]);
  130.                                                 }else if(s1[0].equals("/")){
  131.                                                         a[0] = NewTestFrame.this.chuFa(a[0], a[1]);
  132.                                                 }
  133.                                                 System.out.println();
  134.                                                 System.out.print(a[0]);
  135.                                                 System.out.print(e.getActionCommand());//输出选择值
  136.                                                 s1[1] = "="+a[0];
  137.                                                 label.setText(s1[1]);
  138.                                                 s1[0] = e.getActionCommand();
  139.                                                 a[1] = 0;
  140.                                                 s="";
  141.                                         }
  142.                                 }
  143.                                
  144.                                 if(e.getActionCommand().equals("=")){//如果是等号执行
  145.                                         if(a[0] == 0){//
  146.                                                 a[0] = Integer.parseInt(s);
  147.                                                 s = "";
  148.                                                 System.out.println();
  149.                                                 System.out.println("结果为:"+a[0]);
  150.                                                 s1[1] = "="+a[0];
  151.                                                 label.setText(s1[1]);
  152.                                         }else{
  153.                                                 a[1] = Integer.parseInt(s);
  154.                                                 if(s1[0].equals("+")){
  155.                                                         a[0] = NewTestFrame.this.jiaFa(a[0], a[1]);
  156.                                                 }else if(s1[0].equals("-")){
  157.                                                         a[0] = NewTestFrame.this.jianFa(a[0], a[1]);
  158.                                                 }else if(s1[0].equals("*")){
  159.                                                         a[0] = NewTestFrame.this.chengFa(a[0], a[1]);
  160.                                                 }else if(s1[0].equals("/")){
  161.                                                         a[0] = NewTestFrame.this.chuFa(a[0], a[1]);
  162.                                                 }
  163.                                                 System.out.println();
  164.                                                 System.out.print(e.getActionCommand());//输出选择值
  165.                                                 System.out.print(a[0]);                                               
  166.                                                 s1[1] = "="+a[0];
  167.                                                 label.setText(s1[1]);
  168.                                                 s1[0] = e.getActionCommand();
  169.                                                 a[1] = 0;
  170.                                                 s="";
  171.                                         }
  172.                                 }
  173.                                
  174.                                 if(e.getActionCommand().equals("CE")){//如果是CE,清空
  175.                                         a[0] = 0;
  176.                                         a[1] = 0;
  177.                                         s = "";
  178.                                         s1[0] = "";       
  179.                                         s1[1] = "=";
  180.                                         label.setText(s1[1]);
  181.                                 }
  182.                                
  183.                         }
  184.                 };
  185.                
  186. //******************************************加载事件*****************************************************//
  187.                 jb.addActionListener(listener);//加载事件
  188.                 jb1.addActionListener(listener);
  189.                 jb2.addActionListener(listener);
  190.                 jb3.addActionListener(listener);
  191.                 jb4.addActionListener(listener);
  192.                 jb5.addActionListener(listener);
  193.                 jb6.addActionListener(listener);
  194.                 jb7.addActionListener(listener);
  195.                 jb8.addActionListener(listener);
  196.                 jb9.addActionListener(listener);
  197.                 jb10.addActionListener(listener);
  198.                 jb11.addActionListener(listener);
  199.                 jb12.addActionListener(listener);
  200.                 jb13.addActionListener(listener);
  201.                 jb14.addActionListener(listener);
  202.                 jb15.addActionListener(listener);
  203.         }
  204.         @Override
  205.         public void initPostion() {
  206.                 // TODO Auto-generated method stub
  207.                
  208.         }
  209.        
  210.         public static void main(String[] args) {//主方法
  211.                 NewTestFrame ntf = new NewTestFrame();
  212.                 ntf.init();
  213.         }

  214. }
复制代码


3 个回复

正序浏览
留名后学
回复 使用道具 举报
666666666666
回复 使用道具 举报
仅供同学们娱乐使用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马