package com;import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;public class Caculator extends JFrame implements ActionListener,KeyListener{
 /**
 * 
 */
private static final long serialVersionUID = 5204982079673572494L;
private JTextField tf=new JTextField();
 private float x=0;
 private float y=0;
 private int code=0;
 private boolean enable;
 private boolean first;
 private String str="";
 public Caculator(){
    Container ct=this.getContentPane();
    this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    tf.setHorizontalAlignment(JTextField.RIGHT);
    //tf.setText("0");
    enable=true;
    first=true;
    ct.add(tf,BorderLayout.NORTH);
    JPanel panel=new JPanel();
    panel.setLayout(new GridLayout(4,4));
    this.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
     if(JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(Caculator.this,"确定要关闭程序吗?","提示",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE)){
      e.getWindow().setVisible(false);
      e.getWindow().dispose();
      System.exit(0);
     }    }
    });
    Button btn=null;
    btn=new Button("1");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("2");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("3");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("+");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("4");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("5");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("6");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("-");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("7");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("8");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("9");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("*");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("0");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button(".");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("/");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    btn=new Button("=");
    panel.add(btn);
    btn.addActionListener(this);
    btn.addKeyListener(this);
    this.add(panel,BorderLayout.CENTER);
    }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Caculator mainframe=new Caculator();
  mainframe.setTitle("testing Caculator");
  mainframe.setSize(400,400);
  mainframe.setVisible(true);
  
 }
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  if(e.getActionCommand()=="+"){
   x= Float.parseFloat(tf.getText());
   code=0;
   this.tf.setText("");
   
  }
  if(e.getActionCommand()=="-"){
   x= Float.parseFloat(tf.getText());
   code=1;
   this.tf.setText("");
   
  }
  if(e.getActionCommand()=="*"){
   x= Float.parseFloat(tf.getText());
   code=2;
   this.tf.setText("");
   
  }
  if(e.getActionCommand()=="/"){
   x= Float.parseFloat(tf.getText());
   code=3;
   this.tf.setText("");
   
  }
  
  if(e.getActionCommand()!="+"&&e.getActionCommand()!="-"&&e.getActionCommand()!="*"&&e.getActionCommand()!="/"&&e.getActionCommand()!="="){
   if(enable){
    if(first){
     System.out.println("haha");
     tf.setText(e.getActionCommand());
     first=false;
    }
    else {
     tf.setText(tf.getText()+e.getActionCommand());
    }
   
   }
    
  
      else {
   tf.setText(e.getActionCommand());
   enable=true;
   
      }
    }
  if(e.getActionCommand()=="="){
   switch(code){
   case 0:
        y=x+Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break;
   case 1:
        y=x-Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break;
   case 2:
        y=x*Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break;
   case 3:
        y=x/Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break; 
   }
   
  }
  
 }
 public void keyPressed(KeyEvent e) {
  // TODO Auto-generated method stub
  if(e.getKeyChar()=='+'){
   x= Float.parseFloat(tf.getText());
   code=0;
   this.tf.setText("");
   
  }
  if(e.getKeyChar()=='-'){
   x= Float.parseFloat(tf.getText());
   code=1;
   this.tf.setText("");
   
  }
  if(e.getKeyChar()=='*'){
   x= Float.parseFloat(tf.getText());
   code=2;
   this.tf.setText("");
   
  }
  if(e.getKeyChar()=='/'){
   x= Float.parseFloat(tf.getText());
   code=3;
   this.tf.setText("");
   
  }
  
  if(e.getKeyChar()=='1'||e.getKeyChar()=='2'||e.getKeyChar()=='3'||e.getKeyChar()=='0'
   ||e.getKeyChar()=='4'||e.getKeyChar()=='5'||e.getKeyChar()=='6'||e.getKeyChar()=='.'
   ||e.getKeyChar()=='7'||e.getKeyChar()=='8'||e.getKeyChar()=='9'){
   System.out.println("hai");
   if(enable){
    if(first){
     System.out.println("hehe");
     str=Character.toString(e.getKeyChar());
     tf.setText(str);
     first=false;
    }
    else {
     
     str=Character.toString(e.getKeyChar());
     tf.setText(tf.getText()+str);
    }
   
   }
    
  
      else {
       
       str=Character.toString(e.getKeyChar());
       tf.setText(str);
       enable=true;
   
      }
    }
  if(e.getKeyCode()==KeyEvent.VK_ENTER){
   switch(code){
   case 0:
        y=x+Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break;
   case 1:
        y=x-Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break;
   case 2:
        y=x*Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break;
   case 3:
        y=x/Float.parseFloat(this.tf.getText());
        tf.setText(Float.toString(y));
        enable=false;
        break; 
   }
   
  }
 }
 public void keyReleased(KeyEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 public void keyTyped(KeyEvent arg0) {
  // TODO Auto-generated method stub
  
 }
 
 
 } 为什么这段代码在cmd中可以通过编译但是执行的时候却出现了下面的错误
D:\>javac Caculator.javaD:\>java Caculator
Exception in thread "main" java.lang.NoClassDefFoundError: Caculator (wrong name
: com/Caculator)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)D:\>