java吧 关注:1,261,109贴子:12,757,677
  • 3回复贴,共1
计算器程序
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class Caculate extends JPanel
{
private JTextField text;
private JButton cbutton,offbutton;
private JButton button1,button2,button3,button4,button5,button6,button7,button8,button9,button10,button11,button12,button13,button14,button15,button16;
private JPanel panel1,panel2,panel3;
public Caculate()
{
   text=new JTextField("",20);
  
   cbutton=new JButton("CLEAR");
   cbutton.addActionListener(new ButtonListener());
  
   offbutton=new JButton("OFF");
   offbutton.addActionListener(new ButtonListener());
  
   button1=new JButton("1");
   button2=new JButton("2");
   button3=new JButton("3");
   button4=new JButton("4");
   button5=new JButton("5");
   button6=new JButton("6");
   button7=new JButton("7");
   button8=new JButton("8");
   button9=new JButton("9");
   button10=new JButton("0");
   button11=new JButton("+");
   button12=new JButton("-");
   button13=new JButton("*");
   button14=new JButton(".");
   button15=new JButton("=");
   button16=new JButton("/");
   button1.addActionListener(new ButtonListener());
   button2.addActionListener(new ButtonListener());
   button3.addActionListener(new ButtonListener());
   button4.addActionListener(new ButtonListener());
   button5.addActionListener(new ButtonListener());
   button6.addActionListener(new ButtonListener());
   button7.addActionListener(new ButtonListener());
   button8.addActionListener(new ButtonListener());
   button9.addActionListener(new ButtonListener());
   button10.addActionListener(new ButtonListener());
   button11.addActionListener(new ButtonListener());
   button12.addActionListener(new ButtonListener());
   button13.addActionListener(new ButtonListener());
   button14.addActionListener(new ButtonListener());
   button15.addActionListener(new ButtonListener());
   button16.addActionListener(new ButtonListener());
  
   panel1=new JPanel();
   panel1.setLayout(new GridLayout(1,1));
   panel1.add(text);
  
   panel2=new JPanel();
   panel2.setLayout(new GridLayout(1,2));
   panel2.add(cbutton);
   panel2.add(offbutton);
  
   panel3=new JPanel();
   panel3.setLayout(new GridLayout(4,4));
   panel3.add(button1);
   panel3.add(button2);
   panel3.add(button3);
   panel3.add(button11);



IP属地:广东1楼2010-06-25 23:58回复
       panel3.add(button4);
       panel3.add(button5);
       panel3.add(button6);
       panel3.add(button12);
       panel3.add(button7);
       panel3.add(button8);
       panel3.add(button9);
       panel3.add(button13);
       panel3.add(button10);
       panel3.add(button14);
       panel3.add(button15);
       panel3.add(button16);
      
       setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
       add(panel1);
       add(panel2);
       add(panel3);
      
       setBackground (Color.white);
       setPreferredSize (new Dimension(300, 240));
    }
      
       private class ButtonListener implements ActionListener
       {
         double vard,vard1,result=0;
         int key,presskey;
           public void actionPerformed(ActionEvent e)
           {
              Object temp=e.getSource();
            if(temp==button1)
            {
               text.setText(text.getText()+Integer.toString(1));
             }
            if(temp==button2)
            {
               text.setText(text.getText()+Integer.toString(2));
             }
            if(temp==button3)
            {
               text.setText(text.getText()+Integer.toString(3));
             }
            if(temp==button4)
            {
              text.setText(text.getText()+Integer.toString(4));
             }
            if(temp==button5)
            {
              text.setText(text.getText()+Integer.toString(5));
            }
            if(temp==button6)
            {
              text.setText(text.getText()+Integer.toString(6));
            }
           if(temp==button7)
           {
              text.setText(text.getText()+Integer.toString(7));
           }
    


    IP属地:广东2楼2010-06-25 23:58
    回复
      2025-05-25 05:25:03
      广告
             if(temp==button8)
             {
               text.setText(text.getText()+Integer.toString(8));
             }
             if(temp==button9)
             {
               text.setText(text.getText()+Integer.toString(9));
              }
             if(temp==button10)
             {
               text.setText(text.getText()+Integer.toString(0));
             }
             
           if(temp==button14)
           {
            boolean isDot=false;
             if(text.getText().length()==0)
               isDot=true;
              for(int i=0;i<text.getText().length();i++)
              {
                 if('.'==text.getText().charAt(i))
                 {
                   isDot=true;
                    break;
                  }
               }
             if(isDot==false)
               text.setText(text.getText()+'.');
             }
            
             if(temp==button11)
             {
               presskey=key=0;
               vard=Double.parseDouble(text.getText());
               text.setText("");
               result=vard;
             }
             
             if(temp==button12)
             {
                presskey=key=1;
                vard=Double.parseDouble(text.getText());
                text.setText("");
                result=vard;
             }
             
             if(temp==button13)
             {
                presskey=key=2;
      


      IP属地:广东3楼2010-06-25 23:58
      回复
                  vard=Double.parseDouble(text.getText());
                  text.setText("");
                  result=vard;
                }
               
               if(temp==button16)
               {
                  presskey=key=3;
                  vard=Double.parseDouble(text.getText());
                  text.setText("");
                  result=vard;
                }
               
               if((presskey==0||presskey==1||presskey==2||presskey==3)&&presskey!=4)
               {
                   vard1=Double.parseDouble(text.getText());
               }
               if(temp==button15)
               {
                 vard=Double.parseDouble(text.getText());
                  if(presskey==0)
                    result+=vard;
                  if(presskey==1)
                    result-=vard;
                  if(presskey==2)
                    result*=vard;
                  if(presskey==3)
                  {
                    if(vard==0)
                      text.setText("除数不能为0");
                    else
                      result/=vard;
                  }
                 if(presskey==4)
                 {
                  if(key==0)
                     result+=vard1;
                  if(key==1)
                     result-=vard1;
                  if(key==2)
                     result*=vard1;
                  if(key==3)
                  {
                    if(vard1==0)
                       text.setText("除数不能为0");
                    else
                       result/=vard1;
                   }
                  }
                 if(presskey!=3 || key!=3)
                     text.setText(Double.toString(result));
                else
                {
                   if(vard!=0 || vard1!=0)
                  text.setText(Double.toString(result));
                }
                presskey=4;
              }
             
              if (temp == cbutton)
              {
                 text.setText("");
               }
              if (temp == offbutton)
              {
                vard =result=vard1=0;
                text.setText("");
              }
           }
        }
        }
        点加减乘除的时候就出错                


        IP属地:广东4楼2010-06-25 23:58
        回复