为了账号安全,请及时绑定邮箱和手机立即绑定

我做的java简易计算机为什么等于输出不来结果,代码如下

我做的java简易计算机为什么等于输出不来结果,代码如下

慕运维6388425 2016-11-18 08:14:54
main方法public class main{ public static void main(String []args){ calculator ca = new calculator(200,200,200,250); }}calculate类import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JTextField;import com.sun.glass.ui.Clipboard;public class calculator extends JFrame implements ActionListener { JMenuBar myJMenuBar; JMenu menu ,menu2,menu3; JMenuItem item,item2,item3, item4,item5,item6; //上面定义菜单的 String num1;//定义加数,减数。就是第一个运算数 String syb;//定义运算符号,我的思路是匹配这个运算符号,符合哪个用那个运算法则 JTextField inputField; JButton[] NumButton;//数字键 JButton[] symbol;//符号键 calculator(int width,int length,int x,int y){//画窗体 super("简单计算机"); setLayout(new FlowLayout()); setBounds(width,length,x,y); init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   } private void init() {//加组件 myJMenuBar=new JMenuBar(); menu = new JMenu("编辑"); menu2 = new JMenu("帮助"); menu3 = new JMenu("关于我们"); item = new JMenuItem("清空"); item2 = new JMenuItem("撤销"); item3= new JMenuItem("复制"); item4= new JMenuItem("作者"); item5= new JMenuItem("版本"); item6= new JMenuItem("制作日期"); item.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ inputField.setText(""); } }); item3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ calculator.setSystemClipboard(inputField.getText()); } }); item4.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null, "作者:----", "作者信息", JOptionPane.ERROR_MESSAGE); } }); item5.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null, "版本:1.0", "版本信息", JOptionPane.ERROR_MESSAGE); } }); item6.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null, "制作日期:11.17.2016", "制作信息", JOptionPane.ERROR_MESSAGE); } }); menu.add(item); menu.add(item2); menu.add(item3); menu3.add(item4); menu3.add(item5); menu3.add(item6); myJMenuBar.add(menu); myJMenuBar.add(menu2); myJMenuBar.add(menu3); setJMenuBar(myJMenuBar); //上面都是菜单组件和他们方法的添加 inputField =new JTextField(13); inputField.setHorizontalAlignment(JTextField.RIGHT); inputField.setBackground(Color.WHITE); inputField.setCaretColor(Color.WHITE); add(inputField); //显示屏的添加 NumButton = new JButton[10]; int i; for(i= 0;i<NumButton.length;i++){ String Num =i+""; NumButton[i]=new JButton(Num); NumButton[i].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {//这个方法是为了实现在显示屏追加数字的 String str = inputField.getText(); inputField.setText(str+Num); } }); add(NumButton[i]); } //数字键的添加 symbol= new JButton[6]; symbol[0]= new JButton("+"); symbol[1]= new JButton("-"); symbol[2]= new JButton("*"); symbol[3]= new JButton("/"); symbol[4]= new JButton("="); symbol[5]= new JButton("退格"); //符号按钮声明 symbol[0].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ num1=inputField.getText();//获取第一个运算数 syb ="+";//符号设置为加号 inputField.setText("");//点击了加号按钮后显示屏清空为了输入第二个运算数 symbol[4].addActionListener(this);//给等于号添加事件,让等于号获取第二个数,匹配符号,与第一个数运算 } }); //下面的方法分别是减法乘法除法 symbol[1].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ num1=inputField.getText(); syb ="-"; inputField.setText(""); symbol[4].addActionListener(this); } }); symbol[2].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ num1=inputField.getText(); syb ="*"; inputField.setText(""); symbol[4].addActionListener(this); } }); symbol[3].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ num1=inputField.getText(); syb ="/"; inputField.setText(""); symbol[4].addActionListener(this); } }); symbol[5].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String str = inputField.getText(); String str1 = str.substring(0,str.length()-1); inputField.setText(str1); } }); //这个是清空显示屏的方法 for(i=0;i<symbol.length;i++){ add(symbol[i]); } } //添加符号按钮 public static void setSystemClipboard(String refContent){ String vc = refContent.trim(); StringSelection ss = new StringSelection(vc); java.awt.datatransfer.Clipboard sysClb = null; sysClb =Toolkit.getDefaultToolkit().getSystemClipboard(); sysClb.setContents(ss,null); } //复制显示屏内容的方法 public void actionPerformed(ActionEvent e) { if(e.getSource()==symbol[4]){ String num2 = inputField.getText();//得到第二个数 int N1 = Integer.parseInt(num1); int N2 = Integer.parseInt(num2); //下面是运算 String Sum=(N1+N2)+""; String Dvalue=(N1-N2)+""; String accumulate =(N1*N2)+""; String discuss=(N1/N2)+""; //下面是匹配 if(syb.equals("+")){ inputField.setText(Sum); } else if(syb.equals("-")){ inputField.setText(Dvalue); } else if(syb.equals("*")){ inputField.setText(accumulate); } else if(syb.equals("/")){ inputField.setText(discuss); } } }//这个是等于号的方法,分别匹配了加减乘除,并且试图将结果输出到显示屏上,不过这个时候出问题了,结果没出来,显示屏清空了,可是明明没有清空的方法。}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1822 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信