首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

事件机制的容易介绍

2013-12-09 
事件机制的简单介绍??// 定义一个二维数组??String[][] arrayItem { { 标准型,科学型 }, { 复制,

事件机制的简单介绍
??// 定义一个二维数组
??String[][] arrayItem = { { "标准型","科学型" }, { "复制", "粘贴", "历史记录" },
????{ "查看帮助", "关于计算器" } };
??// 循环便利arrayMenu数组
??for (int i = 0; i < arrayMenu.length; i++) {
???// 创建JMenu对象
???JMenu menu = new JMenu(arrayMenu[i]);
???// 将menu添加到jmb上
???jmb.add(menu);
???// 循环便利arrayItem数组
???for (int j = 0; j < arrayItem[i].length; j++) {
????// 创建JMenuItem对象
????JMenuItem item = new JMenuItem(arrayItem[i][j]);
????// 将item添加到menu上
????menu.add(item);
???}
??}
??return jmb;
??
??// TODO Auto-generated method stub
?
?}
?
?
}
?// 调用创建北边面板的方法
?
?

?


?

package cal4;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JTextField;public class ClaculListener   implements ActionListener{private double n=0;private float m1=0,m2=0;private int flag=0;private    JTextField jte ; public ClaculListener(JTextField t1){this.jte=t1;}public void actionPerformed(ActionEvent e){String[] array ={"0","1","2","3","4","5","6","7","8","9","+","-","*","/","C","="}; String str="";    for(int i=1;i<=9;i++){                 //  显示输入的数据的过程及结果  if(e.getActionCommand().equals(array[i])){           n=n*10+i;          str=String.valueOf(n);          jte.setText(str);          jte.getText();  }        }    for(int i=10;i<=13;i++)                   if(e.getActionCommand().equals(array[i])){      //依次寻找与所事件匹配的的运算符是那种    m1=Float.parseFloat(jte.getText());    if(flag==10)  m2=m1+m2; //如果连续2次或以上点击运算符而没有按“C”或“=”键,则计算//并保存到m2            else if(flag==11)            m2=m2-m1;            else if(flag==12)            m2=m2*m1;            else if(flag==13)            m2=m2/m1;            else             m2=m1;    // 如果没有连续的运算符运算,就保存当前数据到m2            if(i==10)            flag=10;       //   记录运算符            else if(i==11)            flag=11;            else if(i==12)            flag=12;            else flag=13;            str=String.valueOf(m2);            jte.setText(str);         //显示连续的运算过程            n=0;          //   n还原0,记录下次输入数据            break;    // 如果找到了匹配的运算符并完成运算和记录就退出寻找过程       }     if(e.getActionCommand().equals(array[15])){        //如果事件是"="   m1=Float.parseFloat(jte.getText());       if(flag==10)       m2=m1+m2;      //判断运算符,并作计算,显示运算结果       else if(flag==11)       m2=m2-m1;       else if(flag==12)       m2=m2*m1;       else if(flag==13)       m2=m2/m1;       str=String.valueOf(m2);        jte.setText(str);     // 显示运算结果        n=0;           //   n还原0,记录下次输入数据        flag=0; //  flag还原0,表明没有未处理的运算符        jte.getText();   }   if(e.getActionCommand().equals(array[14])){       //如果事件是"C"即作清楚,各变量还原0   m1=0;      m2=0;      flag=0;      n=0;      jte.setText("0");      }    }    }

?
?<!--EndFragment-->

热点排行