仿window自带的计算器

仿window自带的计算器,功能为基本的计算(支持弹出菜单的复制,剪贴,粘贴)

类一:

Code:
  1. package myclass.calc;   
  2.   
  3. import javax.swing.UIManager;   
  4. import java.awt.*;   
  5.   
  6. /**  
  7.  * <p>Title:简单计算器 </p>  
  8.  * <p>Description:一个运算加减乘除的简单计算器 </p>  
  9.  * <p>Copyright: Copyright (c) 2010</p>  
  10.  * <p>Company: New Core</p>  
  11.  * @author not attributable  
  12.  * @version 1.0  
  13.  */  
  14.   
  15. public class Calc {   
  16.   boolean packFrame = false;   
  17.   
  18.   //Construct the application   
  19.   public Calc() {   
  20.     Frame2 frame = new Frame2();   
  21.     //Validate frames that have preset sizes   
  22.     //Pack frames that have useful preferred size info, e.g. from their layout   
  23.     if (packFrame) {   
  24.       frame.pack();   
  25.     }   
  26.     else {   
  27.       frame.validate();   
  28.     }   
  29.     //Center the window   
  30.     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();   
  31.     Dimension frameSize = frame.getSize();   
  32.     if (frameSize.height > screenSize.height) {   
  33.       frameSize.height = screenSize.height;   
  34.     }   
  35.     if (frameSize.width > screenSize.width) {   
  36.       frameSize.width = screenSize.width;   
  37.     }   
  38.     frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);   
  39.     frame.setVisible(true);   
  40.   }   
  41.   //Main method   
  42.   public static void main(String[] args) {   
  43.     try {   
  44.       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());   
  45.     }   
  46.     catch(Exception e) {   
  47.       e.printStackTrace();   
  48.     }   
  49.     new Calc();   
  50.   }   
  51. }  

类二:

Code:
  1. package myclass.calc;   
  2.   
  3. import java.awt.*;   
  4. import java.awt.event.*;   
  5. import javax.swing.*;   
  6. import com.borland.jbcl.layout.*;   
  7. import java.lang.*;   
  8. import java.lang.Double;   
  9. import java.awt.datatransfer.Clipboard;   
  10. import java.awt.datatransfer.StringSelection;   
  11. import java.awt.datatransfer.Transferable;   
  12. import java.awt.datatransfer.DataFlavor;   
  13. import java.io.*;   
  14. import java.awt.datatransfer.*;   
  15. /**  
  16.  * <p>Title: </p>  
  17.  * <p>Description: </p>  
  18.  * <p>Copyright: Copyright (c) 2010</p>  
  19.  * <p>Company: </p>  
  20.  * @author not attributable  
  21.  * @version 1.0  
  22.  */  
  23.   
  24. public class Frame2 extends JFrame {   
  25.   public static String symbol=null;   
  26.   public static String num1=null;   
  27.   public static String num2=null;   
  28.   public static String result=null;   
  29.   Clipboard clipboard=java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();   
  30.   JPanel contentPane;   
  31.   JMenuBar jMenuBar1 = new JMenuBar();   
  32.   JMenu jMenuFile = new JMenu();   
  33.   JMenuItem jMenuFileExit = new JMenuItem();   
  34.   JMenu jMenuHelp = new JMenu();   
  35.   JMenuItem jMenuHelpAbout = new JMenuItem();   
  36.   JLabel statusBar = new JLabel();   
  37.   JMenuItem jMenuItem1 = new JMenuItem();   
  38.   JMenu jMenu1 = new JMenu();   
  39.   JMenuItem jMenuItem2 = new JMenuItem();   
  40.   JMenuItem jMenuItem3 = new JMenuItem();   
  41.   JMenuItem jMenuItem4 = new JMenuItem();   
  42.   JMenuItem jMenuItem5 = new JMenuItem();   
  43.   JMenuItem jMenuItem6 = new JMenuItem();   
  44.   JMenuItem jMenuItem7 = new JMenuItem();   
  45.   final JTextField jTextField1 = new JTextField();   
  46.   XYLayout xYLayout1 = new XYLayout();   
  47.   JButton jButton1 = new JButton();   
  48.   JButton jButton2 = new JButton();   
  49.   JButton jButton3 = new JButton();   
  50.   JButton jButton4 = new JButton();   
  51.   JButton jButton5 = new JButton();   
  52.   JButton jButton6 = new JButton();   
  53.   JButton jButton7 = new JButton();   
  54.   JButton jButton8 = new JButton();   
  55.   JButton jButton9 = new JButton();   
  56.   JButton jButton10 = new JButton();   
  57.   JButton jButton11 = new JButton();   
  58.   JButton jButton12 = new JButton();   
  59.   JButton jButton13 = new JButton();   
  60.   JButton jButton14 = new JButton();   
  61.   JButton jButton15 = new JButton();   
  62.   JButton jButton16 = new JButton();   
  63.   JButton jButton17 = new JButton();   
  64.   JButton jButton18 = new JButton();   
  65.   JButton jButton19 = new JButton();   
  66.   JButton jButton110 = new JButton();   
  67.   JButton jButton111 = new JButton();   
  68.   JButton jButton112 = new JButton();   
  69.   JButton jButton113 = new JButton();   
  70.   JMenuItem jMenuItem8 = new JMenuItem();   
  71.   JMenuItem jMenuItem9 = new JMenuItem();   
  72.   JPopupMenu jPopupMenu1 = new JPopupMenu();   
  73.   JMenuItem jMenuItem10 = new JMenuItem();   
  74.   JMenuItem jMenuItem11 = new JMenuItem();   
  75.   JMenuItem jMenuItem12 = new JMenuItem();   
  76.   
  77.   //Construct the frame   
  78.   public Frame2() {   
  79.     enableEvents(AWTEvent.WINDOW_EVENT_MASK);   
  80.     try {   
  81.       jbInit();   
  82.     }   
  83.     catch(Exception e) {   
  84.       e.printStackTrace();   
  85.     }   
  86.   }   
  87.   //Component initialization   
  88.   private void jbInit() throws Exception  {   
  89.     contentPane = (JPanel) this.getContentPane();   
  90.     contentPane.setLayout(xYLayout1);   
  91.     this.setSize(new Dimension(400350));   
  92.     this.setTitle("Frame Title");   
  93.     this.addWindowListener(new WindowAdapter() {   
  94.            public void windowClosing(WindowEvent e) {   
  95.              System.exit(0);   
  96.            }   
  97.          });   
  98.     statusBar.setText(" ");   
  99.     jMenuFile.setText("编辑");   
  100.     jMenuFileExit.setText("复制");   
  101.     jMenuFileExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke('1', java.awt.event.KeyEvent.CTRL_MASK, false));   
  102.     jMenuFileExit.addActionListener(new Frame2_jMenuFileExit_ActionAdapter(this));   
  103.     jMenuHelp.setText("帮助");   
  104.     jMenuHelpAbout.setText("关于计算器");   
  105.     jMenuHelpAbout.addActionListener(new Frame2_jMenuHelpAbout_ActionAdapter(this));   
  106.     jMenuItem1.setText("粘贴");   
  107.     jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke('3', java.awt.event.KeyEvent.CTRL_MASK, false));   
  108.     jMenuItem1.addActionListener(new Frame2_jMenuItem1_actionAdapter(this));   
  109.     jMenu1.setText("查看");   
  110.     jMenuItem2.setAction(null);   
  111.     jMenuItem2.setText("简单型");   
  112.     jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke('X'0false));   
  113.     jMenuItem3.setText("科学型");   
  114.     jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke('Y'0false));   
  115.     jMenuItem4.setText("十进制");   
  116.     jMenuItem5.setText("十六进制");   
  117.     jMenuItem6.setText("八进制");   
  118.     jMenuItem7.setActionCommand("二进制");   
  119.     jMenuItem7.setText("二进制");   
  120.     jTextField1.addActionListener(new Frame2_jTextField1_actionAdapter(this));   
  121.     jTextField1.setCaretColor(Color.black);   
  122.     jTextField1.setText("");   
  123.     jTextField1.setHorizontalAlignment(SwingConstants.RIGHT);   
  124.     jTextField1.addMouseListener(new Frame2_jTextField1_mouseAdapter(this));   
  125.     jButton1.setForeground(Color.red);   
  126.     jButton1.setToolTipText("");   
  127.     jButton1.setMargin(new Insets(210210));   
  128.     jButton1.setText("BackSpace");   
  129.     jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));   
  130.     jButton2.setForeground(Color.red);   
  131.     jButton2.setText("CE");   
  132.     jButton2.addActionListener(new Frame2_jButton2_actionAdapter(this));   
  133.     jButton3.setForeground(Color.red);   
  134.     jButton3.setText("C");   
  135.     jButton3.addActionListener(new Frame2_jButton3_actionAdapter(this));   
  136.     jButton4.setForeground(Color.blue);   
  137.     jButton4.setText("7");   
  138.     jButton4.addActionListener(new Frame2_jButton4_actionAdapter(this));   
  139.     jButton5.setForeground(Color.blue);   
  140.     jButton5.setText("8");   
  141.     jButton5.addActionListener(new Frame2_jButton5_actionAdapter(this));   
  142.     jButton6.setForeground(Color.blue);   
  143.     jButton6.setText("9");   
  144.     jButton6.addActionListener(new Frame2_jButton6_actionAdapter(this));   
  145.     jButton7.setFont(new java.awt.Font("Dialog"015));   
  146.     jButton7.setForeground(Color.orange);   
  147.     jButton7.setText("/");   
  148.     jButton7.addActionListener(new Frame2_jButton7_actionAdapter(this));   
  149.     jButton8.setFont(new java.awt.Font("Dialog"011));   
  150.     jButton8.setForeground(Color.green);   
  151.     jButton8.setMargin(new Insets(2828));   
  152.     jButton8.setText("Sqrt");   
  153.     jButton8.addActionListener(new Frame2_jButton8_actionAdapter(this));   
  154.     jButton9.setForeground(Color.blue);   
  155.     jButton9.setText("5");   
  156.     jButton9.addActionListener(new Frame2_jButton9_actionAdapter(this));   
  157.     jButton10.setForeground(Color.blue);   
  158.     jButton10.setText("4");   
  159.     jButton10.addActionListener(new Frame2_jButton10_actionAdapter(this));   
  160.     jButton11.setForeground(Color.blue);   
  161.     jButton11.setText("6");   
  162.     jButton11.addActionListener(new Frame2_jButton11_actionAdapter(this));   
  163.     jButton12.setForeground(Color.blue);   
  164.     jButton12.setText("1");   
  165.     jButton12.addActionListener(new Frame2_jButton12_actionAdapter(this));   
  166.     jButton13.setForeground(Color.green);   
  167.     jButton13.setText("%");   
  168.     jButton13.addActionListener(new Frame2_jButton13_actionAdapter(this));   
  169.     jButton14.setFont(new java.awt.Font("Dialog"020));   
  170.     jButton14.setForeground(Color.orange);   
  171.     jButton14.setMargin(new Insets(2828));   
  172.     jButton14.setText("*");   
  173.     jButton14.addActionListener(new Frame2_jButton14_actionAdapter(this));   
  174.     jButton15.setForeground(SystemColor.activeCaption);   
  175.     jButton15.setText("2");   
  176.     jButton15.addActionListener(new Frame2_jButton15_actionAdapter(this));   
  177.     jButton16.setForeground(Color.blue);   
  178.     jButton16.setText("3");   
  179.     jButton16.addActionListener(new Frame2_jButton16_actionAdapter(this));   
  180.     jButton17.setFont(new java.awt.Font("Dialog"020));   
  181.     jButton17.setForeground(Color.orange);   
  182.     jButton17.setText("-");   
  183.     jButton17.addActionListener(new Frame2_jButton17_actionAdapter(this));   
  184.     jButton18.setForeground(Color.green);   
  185.     jButton18.setMargin(new Insets(2828));   
  186.     jButton18.setText("1/x");   
  187.     jButton18.addActionListener(new Frame2_jButton18_actionAdapter(this));   
  188.     jButton19.setForeground(Color.blue);   
  189.     jButton19.setText("0");   
  190.     jButton19.addActionListener(new Frame2_jButton19_actionAdapter(this));   
  191.     jButton110.setForeground(Color.blue);   
  192.     jButton110.setMargin(new Insets(2828));   
  193.     jButton110.setText("+/-");   
  194.     jButton110.addActionListener(new Frame2_jButton110_actionAdapter(this));   
  195.     jButton111.setFont(new java.awt.Font("SansSerif"014));   
  196.     jButton111.setForeground(Color.blue);   
  197.     jButton111.setText(".");   
  198.     jButton111.addActionListener(new Frame2_jButton111_actionAdapter(this));   
  199.     jButton112.setFont(new java.awt.Font("Dialog"015));   
  200.     jButton112.setForeground(Color.orange);   
  201.     jButton112.setText("=");   
  202.     jButton112.addActionListener(new Frame2_jButton112_actionAdapter(this));   
  203.     jButton113.setBackground(SystemColor.control);   
  204.     jButton113.setFont(new java.awt.Font("SansSerif"114));   
  205.     jButton113.setForeground(Color.orange);   
  206.     jButton113.setText("+");   
  207.     jButton113.addActionListener(new Frame2_jButton113_actionAdapter(this));   
  208.     jMenuItem8.setText("退出");   
  209.     jMenuItem8.addActionListener(new Frame2_jMenuItem8_actionAdapter(this));   
  210.     jMenuItem9.setText("剪切");   
  211.     jMenuItem9.setAccelerator(javax.swing.KeyStroke.getKeyStroke('2', java.awt.event.KeyEvent.CTRL_MASK, false));   
  212.     jMenuItem9.addActionListener(new Frame2_jMenuItem9_actionAdapter(this));   
  213.     jMenuItem10.setText("复制");   
  214.     jMenuItem10.addActionListener(new Frame2_jMenuItem10_actionAdapter(this));   
  215.     jMenuItem11.setText("粘贴");   
  216.     jMenuItem11.addActionListener(new Frame2_jMenuItem11_actionAdapter(this));   
  217.     jMenuItem12.setText("剪切");   
  218.     jMenuItem12.addActionListener(new Frame2_jMenuItem12_actionAdapter(this));   
  219.     jPopupMenu1.addMouseListener(new Frame2_jPopupMenu1_mouseAdapter(this));   
  220.     contentPane.addMouseListener(new Frame2_contentPane_mouseAdapter(this));   
  221.     jMenuFile.add(jMenuFileExit);   
  222.     jMenuFile.add(jMenuItem9);   
  223.     jMenuFile.add(jMenuItem1);   
  224.     jMenuFile.add(jMenuItem8);   
  225.     jMenuHelp.add(jMenuHelpAbout);   
  226.     jMenuBar1.add(jMenuFile);   
  227.     jMenuBar1.add(jMenu1);   
  228.     jMenuBar1.add(jMenuHelp);   
  229.     this.setJMenuBar(jMenuBar1);   
  230.     contentPane.add(statusBar,    new XYConstraints(028440218));   
  231.     contentPane.add(jButton1, new XYConstraints(62418129));   
  232.     contentPane.add(jButton2, new XYConstraints(170428129));   
  233.     contentPane.add(jButton3, new XYConstraints(277428129));   
  234.     contentPane.add(jTextField1, new XYConstraints(4638224));   
  235.     contentPane.add(jButton5, new XYConstraints(119874536));   
  236.     contentPane.add(jButton6, new XYConstraints(190884536));   
  237.     contentPane.add(jButton7, new XYConstraints(256884536));   
  238.     contentPane.add(jButton8, new XYConstraints(319874536));   
  239.     contentPane.add(jButton10, new XYConstraints(461364536));   
  240.     contentPane.add(jButton12, new XYConstraints(461874536));   
  241.     contentPane.add(jButton9, new XYConstraints(1181374536));   
  242.     contentPane.add(jButton15, new XYConstraints(1151864536));   
  243.     contentPane.add(jButton110, new XYConstraints(1132424536));   
  244.     contentPane.add(jButton11, new XYConstraints(1891384536));   
  245.     contentPane.add(jButton16, new XYConstraints(1871894536));   
  246.     contentPane.add(jButton111, new XYConstraints(1852424536));   
  247.     contentPane.add(jButton14, new XYConstraints(2561384536));   
  248.     contentPane.add(jButton13, new XYConstraints(3191384536));   
  249.     contentPane.add(jButton18, new XYConstraints(3181924536));   
  250.     contentPane.add(jButton112, new XYConstraints(3182424536));   
  251.     contentPane.add(jButton4, new XYConstraints(44874536));   
  252.     contentPane.add(jButton113, new XYConstraints(2572404536));   
  253.     contentPane.add(jButton17, new XYConstraints(2571894536));   
  254.     contentPane.add(jButton19, new XYConstraints(462414536));   
  255.     jMenu1.add(jMenuItem2);   
  256.     jMenu1.add(jMenuItem3);   
  257.     jMenu1.addSeparator();   
  258.     jMenu1.add(jMenuItem4);   
  259.     jMenu1.add(jMenuItem5);   
  260.     jMenu1.add(jMenuItem6);   
  261.     jMenu1.add(jMenuItem7);   
  262.     jPopupMenu1.add(jMenuItem10);   
  263.     jPopupMenu1.add(jMenuItem11);   
  264.     jPopupMenu1.add(jMenuItem12);   
  265.   }   
  266.   //复制   
  267.   public void jMenuFileExit_actionPerformed(ActionEvent e) {   
  268.     String  selection=jTextField1.getSelectedText();   //拖动鼠标选取文本。   
  269.       StringSelection data = new StringSelection(selection);   
  270.       clipboard.setContents(data, data);   
  271.   }   
  272.   //剪切   
  273.   void jMenuItem9_actionPerformed(ActionEvent e) {   
  274.     String   temp=jTextField1.getSelectedText();      //拖动鼠标选取文本。   
  275.     StringSelection   text=new   StringSelection(temp);   
  276.     clipboard.setContents(text,null);   
  277.     int  start=jTextField1.getSelectionStart();   
  278.     int   end=jTextField1.getSelectionEnd();   
  279.      jTextField1.setText(jTextField1.getText().substring(0,start)+jTextField1.getText().substring(end,jTextField1.getText().length()));   
  280.   
  281.  }   
  282.   
  283.   //粘贴   
  284.   void jMenuItem1_actionPerformed(ActionEvent e) {   
  285.   Transferable clipData=clipboard.getContents(clipboard);   
  286.   if(clipData!=null){   
  287.     if(clipData.isDataFlavorSupported(DataFlavor.stringFlavor)){   
  288.       String s = null;   
  289.       try {   
  290.         s = (String) (clipData.getTransferData(DataFlavor.stringFlavor));   
  291.         jTextField1.setText(s);   
  292.       }   
  293.       catch (IOException ex) {   
  294.        jTextField1.setText("Unable to get data");   
  295.       }   
  296.       catch (UnsupportedFlavorException ex) {   
  297.         jTextField1.setText("Unsupported flavor");   
  298.       }   
  299.     }   
  300.   
  301.   }else{   
  302.      jTextField1.setText("剪切板没有内容!");   
  303.   }   
  304.  }   
  305.   
  306.  //弹出菜单复制   
  307. void jMenuItem10_actionPerformed(ActionEvent e) {   
  308.    String  selection=jTextField1.getSelectedText();   //拖动鼠标选取文本。   
  309.         StringSelection data = new StringSelection(selection);   
  310.         clipboard.setContents(data, data);   
  311.   
  312. }   
  313. //弹出菜单粘贴   
  314. void jMenuItem11_actionPerformed(ActionEvent e) {   
  315.         Transferable clipData=clipboard.getContents(clipboard);   
  316.          if(clipData!=null){   
  317.            if(clipData.isDataFlavorSupported(DataFlavor.stringFlavor)){   
  318.              String s = null;   
  319.              try {   
  320.                s = (String) (clipData.getTransferData(DataFlavor.stringFlavor));   
  321.                jTextField1.setText(s);   
  322.              }   
  323.              catch (IOException ex) {   
  324.               jTextField1.setText("Unable to get data");   
  325.              }   
  326.              catch (UnsupportedFlavorException ex) {   
  327.                jTextField1.setText("Unsupported flavor");   
  328.              }   
  329.            }   
  330.   
  331.          }else{   
  332.             jTextField1.setText("剪切板没有内容!");   
  333.          }   
  334.   
  335. }   
  336. //弹出菜单剪切   
  337. void jMenuItem12_actionPerformed(ActionEvent e) {   
  338.         String   temp=jTextField1.getSelectedText();      //拖动鼠标选取文本。   
  339.            StringSelection   text=new   StringSelection(temp);   
  340.            clipboard.setContents(text,null);   
  341.            int  start=jTextField1.getSelectionStart();   
  342.            int   end=jTextField1.getSelectionEnd();   
  343.            jTextField1.setText(jTextField1.getText().substring(0,start)+jTextField1.getText().substring(end,jTextField1.getText().length()));   
  344.   
  345. }   
  346.   
  347.   
  348.   //Help | About action performed   
  349.   public void jMenuHelpAbout_actionPerformed(ActionEvent e) {   
  350.     Frame2_AboutBox dlg = new Frame2_AboutBox(this);   
  351.     Dimension dlgSize = dlg.getPreferredSize();   
  352.     Dimension frmSize = getSize();   
  353.     Point loc = getLocation();   
  354.     dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);   
  355.     dlg.setModal(true);   
  356.     dlg.pack();   
  357.     dlg.show();   
  358.   }   
  359.   //Overridden so we can exit when window is closed   
  360.   protected void processWindowEvent(WindowEvent e) {   
  361.     super.processWindowEvent(e);   
  362.     if (e.getID() == WindowEvent.WINDOW_CLOSING) {   
  363.       jMenuFileExit_actionPerformed(null);   
  364.     }   
  365.   }   
  366.   
  367.   void jTextField1_actionPerformed(ActionEvent e) {   
  368.   
  369.   }   
  370.   
  371.   void jButton4_actionPerformed(ActionEvent e) {   
  372.     jTextField1.setText(jTextField1.getText()+"7");   
  373.   }   
  374.   
  375.   void jButton10_actionPerformed(ActionEvent e) {   
  376.     jTextField1.setText(jTextField1.getText()+"4");   
  377.   }   
  378.   
  379.   void jButton5_actionPerformed(ActionEvent e) {   
  380.     jTextField1.setText(jTextField1.getText()+"8");   
  381.   }   
  382.   
  383.   void jButton6_actionPerformed(ActionEvent e) {   
  384.     jTextField1.setText(jTextField1.getText()+"9");   
  385.   }   
  386.   
  387.   void jButton9_actionPerformed(ActionEvent e) {   
  388.     jTextField1.setText(jTextField1.getText()+"5");   
  389.   }   
  390.   
  391.   void jButton11_actionPerformed(ActionEvent e) {   
  392.     jTextField1.setText(jTextField1.getText()+"6");   
  393.   }   
  394.   
  395.   void jButton12_actionPerformed(ActionEvent e) {   
  396.     jTextField1.setText(jTextField1.getText()+"1");   
  397.   }   
  398.   
  399.   void jButton15_actionPerformed(ActionEvent e) {   
  400.     jTextField1.setText(jTextField1.getText()+"2");   
  401.   }   
  402.   
  403.   void jButton16_actionPerformed(ActionEvent e) {   
  404.     jTextField1.setText(jTextField1.getText()+"3");   
  405.   }   
  406.   
  407.   void jButton19_actionPerformed(ActionEvent e) {   
  408.     jTextField1.setText(jTextField1.getText()+"0");   
  409.   }   
  410.   
  411.   void jButton110_actionPerformed(ActionEvent e) {   
  412.     //加入正负   
  413.      if(jTextField1.getText().substring(0,1).equals("-")){   
  414.        jTextField1.setText(jTextField1.getText().substring(1,jTextField1.getText().length()));   
  415.      }else{   
  416.         jTextField1.setText("-"+jTextField1.getText());   
  417.      }   
  418.   }   
  419.   
  420.   void jButton111_actionPerformed(ActionEvent e) {   
  421.     jTextField1.setText(jTextField1.getText()+".");   
  422.   }   
  423.   
  424.   void jButton3_actionPerformed(ActionEvent e) {   
  425.     //清空   
  426.     jTextField1.setText("");   
  427.   }   
  428.   
  429.   void jButton2_actionPerformed(ActionEvent e) {   
  430.     jTextField1.setText("0");   
  431.   }   
  432.   
  433.   void jButton1_actionPerformed(ActionEvent e) {   
  434.     jTextField1.setText(jTextField1.getText().substring(0,jTextField1.getText().length()-1));   
  435.   }   
  436.   
  437.   void jButton113_actionPerformed(ActionEvent e) {   
  438.     //加法   
  439.     num1=jTextField1.getText().trim();   
  440.     symbol="+";   
  441.      jTextField1.setText("");   
  442.   }   
  443.   
  444.   void jButton17_actionPerformed(ActionEvent e) {   
  445.     //减法   
  446.     num1=jTextField1.getText().trim();   
  447.     symbol="-";   
  448.      jTextField1.setText("");   
  449.   }   
  450.   
  451.   void jButton14_actionPerformed(ActionEvent e) {   
  452.     //乘法   
  453.     num1=jTextField1.getText().trim();   
  454.     symbol="*";   
  455.      jTextField1.setText("");   
  456.   }   
  457.   
  458.   void jButton7_actionPerformed(ActionEvent e) {   
  459.     //除法   
  460.     num1=jTextField1.getText().trim();   
  461.     symbol="/";   
  462.      jTextField1.setText("");   
  463.   }   
  464.   
  465.   void jButton8_actionPerformed(ActionEvent e) {   
  466.     //开方   
  467.      num1=jTextField1.getText().trim();   
  468.     symbol="Sqrt";   
  469.     double a=Double.parseDouble(num1);   
  470.      jTextField1.setText(Math.sqrt(a)+"");   
  471.   }   
  472.   
  473.   void jButton13_actionPerformed(ActionEvent e) {   
  474.     //求余   
  475.     num1=jTextField1.getText().trim();   
  476.     symbol="%";   
  477.      jTextField1.setText("");   
  478.   
  479.   }   
  480.   
  481.   void jButton18_actionPerformed(ActionEvent e) {   
  482.     //求倒数   
  483.     num1=jTextField1.getText();   
  484.     symbol="1/x";   
  485.     if(Integer.parseInt(num1)!=0){   
  486.       jTextField1.setText(1/Double.parseDouble(num1)+"");   
  487.     }else{   
  488.       jTextField1.setText("除数不能为0");   
  489.     }   
  490.   
  491.   }   
  492.   
  493.   void jButton112_actionPerformed(ActionEvent e) {   
  494.     //=号计算   
  495.     num2=jTextField1.getText().trim();   
  496.         if("+".equals(symbol)){   
  497.           result=Double.parseDouble(num1)+Double.parseDouble(num2)+"";   
  498.           jTextField1.setText(result);   
  499.         }else if("-".equals(symbol)){   
  500.           result=Double.parseDouble(num1)-Double.parseDouble(num2)+"";   
  501.           jTextField1.setText(result);   
  502.         }else if("*".equals(symbol)){   
  503.           result=Double.parseDouble(num1)*Double.parseDouble(num2)+"";   
  504.           jTextField1.setText(result);   
  505.         }else if("/".equals(symbol)){   
  506.           if(Integer.parseInt(num2)==0){   
  507.             jTextField1.setText("除数不能为0");   
  508.           }else{   
  509.              result=Double.parseDouble(num1)/Double.parseDouble(num2)+"";   
  510.              jTextField1.setText(result);   
  511.           }   
  512.         }else if("%".equals(symbol)){   
  513.           int a=(int)Double.parseDouble(num1);   
  514.           int b=(int)Double.parseDouble(num2);   
  515.           if(b==0){   
  516.             jTextField1.setText("除数求余不能为0");   
  517.           }else{   
  518.             result=a%b+"";   
  519.              jTextField1.setText(result);   
  520.           }   
  521.   
  522.         }else{   
  523.           jTextField1.setText("程序出错,请重新复位!");   
  524.         }   
  525.   
  526.   }   
  527.   
  528.   void jMenuItem8_actionPerformed(ActionEvent e) {   
  529.          System.exit(0);   
  530.   }   
  531.   
  532.   void jTextField1_mouseReleased(MouseEvent e) {   
  533.     if(e.isPopupTrigger()){   
  534.            jPopupMenu1.show(e.getComponent(),e.getX(),e.getY());   
  535.          }   
  536.   
  537.   }   
  538.   
  539. }   
  540.   
  541. class Frame2_jMenuFileExit_ActionAdapter implements ActionListener {   
  542.   Frame2 adaptee;   
  543.   
  544.   Frame2_jMenuFileExit_ActionAdapter(Frame2 adaptee) {   
  545.     this.adaptee = adaptee;   
  546.   }   
  547.   public void actionPerformed(ActionEvent e) {   
  548.     adaptee.jMenuFileExit_actionPerformed(e);   
  549.   }   
  550. }   
  551.   
  552. class Frame2_jMenuHelpAbout_ActionAdapter implements ActionListener {   
  553.   Frame2 adaptee;   
  554.   
  555.   Frame2_jMenuHelpAbout_ActionAdapter(Frame2 adaptee) {   
  556.     this.adaptee = adaptee;   
  557.   }   
  558.   public void actionPerformed(ActionEvent e) {   
  559.     adaptee.jMenuHelpAbout_actionPerformed(e);   
  560.   }   
  561. }   
  562.   
  563. class Frame2_jTextField1_actionAdapter implements java.awt.event.ActionListener {   
  564.   Frame2 adaptee;   
  565.   
  566.   Frame2_jTextField1_actionAdapter(Frame2 adaptee) {   
  567.     this.adaptee = adaptee;   
  568.   }   
  569.   public void actionPerformed(ActionEvent e) {   
  570.     adaptee.jTextField1_actionPerformed(e);   
  571.   }   
  572. }   
  573.   
  574. class Frame2_jButton4_actionAdapter implements java.awt.event.ActionListener {   
  575.   Frame2 adaptee;   
  576.   
  577.   Frame2_jButton4_actionAdapter(Frame2 adaptee) {   
  578.     this.adaptee = adaptee;   
  579.   }   
  580.   public void actionPerformed(ActionEvent e) {   
  581.     adaptee.jButton4_actionPerformed(e);   
  582.   }   
  583. }   
  584.   
  585. class Frame2_jButton10_actionAdapter implements java.awt.event.ActionListener {   
  586.   Frame2 adaptee;   
  587.   
  588.   Frame2_jButton10_actionAdapter(Frame2 adaptee) {   
  589.     this.adaptee = adaptee;   
  590.   }   
  591.   public void actionPerformed(ActionEvent e) {   
  592.     adaptee.jButton10_actionPerformed(e);   
  593.   }   
  594. }   
  595.   
  596. class Frame2_jButton5_actionAdapter implements java.awt.event.ActionListener {   
  597.   Frame2 adaptee;   
  598.   
  599.   Frame2_jButton5_actionAdapter(Frame2 adaptee) {   
  600.     this.adaptee = adaptee;   
  601.   }   
  602.   public void actionPerformed(ActionEvent e) {   
  603.     adaptee.jButton5_actionPerformed(e);   
  604.   }   
  605. }   
  606.   
  607. class Frame2_jButton6_actionAdapter implements java.awt.event.ActionListener {   
  608.   Frame2 adaptee;   
  609.   
  610.   Frame2_jButton6_actionAdapter(Frame2 adaptee) {   
  611.     this.adaptee = adaptee;   
  612.   }   
  613.   public void actionPerformed(ActionEvent e) {   
  614.     adaptee.jButton6_actionPerformed(e);   
  615.   }   
  616. }   
  617.   
  618. class Frame2_jButton9_actionAdapter implements java.awt.event.ActionListener {   
  619.   Frame2 adaptee;   
  620.   
  621.   Frame2_jButton9_actionAdapter(Frame2 adaptee) {   
  622.     this.adaptee = adaptee;   
  623.   }   
  624.   public void actionPerformed(ActionEvent e) {   
  625.     adaptee.jButton9_actionPerformed(e);   
  626.   }   
  627. }   
  628.   
  629. class Frame2_jButton11_actionAdapter implements java.awt.event.ActionListener {   
  630.   Frame2 adaptee;   
  631.   
  632.   Frame2_jButton11_actionAdapter(Frame2 adaptee) {   
  633.     this.adaptee = adaptee;   
  634.   }   
  635.   public void actionPerformed(ActionEvent e) {   
  636.     adaptee.jButton11_actionPerformed(e);   
  637.   }   
  638. }   
  639.   
  640. class Frame2_jButton12_actionAdapter implements java.awt.event.ActionListener {   
  641.   Frame2 adaptee;   
  642.   
  643.   Frame2_jButton12_actionAdapter(Frame2 adaptee) {   
  644.     this.adaptee = adaptee;   
  645.   }   
  646.   public void actionPerformed(ActionEvent e) {   
  647.     adaptee.jButton12_actionPerformed(e);   
  648.   }   
  649. }   
  650.   
  651. class Frame2_jButton15_actionAdapter implements java.awt.event.ActionListener {   
  652.   Frame2 adaptee;   
  653.   
  654.   Frame2_jButton15_actionAdapter(Frame2 adaptee) {   
  655.     this.adaptee = adaptee;   
  656.   }   
  657.   public void actionPerformed(ActionEvent e) {   
  658.     adaptee.jButton15_actionPerformed(e);   
  659.   }   
  660. }   
  661.   
  662. class Frame2_jButton16_actionAdapter implements java.awt.event.ActionListener {   
  663.   Frame2 adaptee;   
  664.   
  665.   Frame2_jButton16_actionAdapter(Frame2 adaptee) {   
  666.     this.adaptee = adaptee;   
  667.   }   
  668.   public void actionPerformed(ActionEvent e) {   
  669.     adaptee.jButton16_actionPerformed(e);   
  670.   }   
  671. }   
  672.   
  673. class Frame2_jButton19_actionAdapter implements java.awt.event.ActionListener {   
  674.   Frame2 adaptee;   
  675.   
  676.   Frame2_jButton19_actionAdapter(Frame2 adaptee) {   
  677.     this.adaptee = adaptee;   
  678.   }   
  679.   public void actionPerformed(ActionEvent e) {   
  680.     adaptee.jButton19_actionPerformed(e);   
  681.   }   
  682. }   
  683.   
  684. class Frame2_jButton110_actionAdapter implements java.awt.event.ActionListener {   
  685.   Frame2 adaptee;   
  686.   
  687.   Frame2_jButton110_actionAdapter(Frame2 adaptee) {   
  688.     this.adaptee = adaptee;   
  689.   }   
  690.   public void actionPerformed(ActionEvent e) {   
  691.     adaptee.jButton110_actionPerformed(e);   
  692.   }   
  693. }   
  694.   
  695. class Frame2_jButton111_actionAdapter implements java.awt.event.ActionListener {   
  696.   Frame2 adaptee;   
  697.   
  698.   Frame2_jButton111_actionAdapter(Frame2 adaptee) {   
  699.     this.adaptee = adaptee;   
  700.   }   
  701.   public void actionPerformed(ActionEvent e) {   
  702.     adaptee.jButton111_actionPerformed(e);   
  703.   }   
  704. }   
  705.   
  706. class Frame2_jButton3_actionAdapter implements java.awt.event.ActionListener {   
  707.   Frame2 adaptee;   
  708.   
  709.   Frame2_jButton3_actionAdapter(Frame2 adaptee) {   
  710.     this.adaptee = adaptee;   
  711.   }   
  712.   public void actionPerformed(ActionEvent e) {   
  713.     adaptee.jButton3_actionPerformed(e);   
  714.   }   
  715. }   
  716.   
  717. class Frame2_jButton2_actionAdapter implements java.awt.event.ActionListener {   
  718.   Frame2 adaptee;   
  719.   
  720.   Frame2_jButton2_actionAdapter(Frame2 adaptee) {   
  721.     this.adaptee = adaptee;   
  722.   }   
  723.   public void actionPerformed(ActionEvent e) {   
  724.     adaptee.jButton2_actionPerformed(e);   
  725.   }   
  726. }   
  727.   
  728. class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener {   
  729.   Frame2 adaptee;   
  730.   
  731.   Frame2_jButton1_actionAdapter(Frame2 adaptee) {   
  732.     this.adaptee = adaptee;   
  733.   }   
  734.   public void actionPerformed(ActionEvent e) {   
  735.     adaptee.jButton1_actionPerformed(e);   
  736.   }   
  737. }   
  738.   
  739. class Frame2_jButton113_actionAdapter implements java.awt.event.ActionListener {   
  740.   Frame2 adaptee;   
  741.   
  742.   Frame2_jButton113_actionAdapter(Frame2 adaptee) {   
  743.     this.adaptee = adaptee;   
  744.   }   
  745.   public void actionPerformed(ActionEvent e) {   
  746.     adaptee.jButton113_actionPerformed(e);   
  747.   }   
  748. }   
  749.   
  750. class Frame2_jButton17_actionAdapter implements java.awt.event.ActionListener {   
  751.   Frame2 adaptee;   
  752.   
  753.   Frame2_jButton17_actionAdapter(Frame2 adaptee) {   
  754.     this.adaptee = adaptee;   
  755.   }   
  756.   public void actionPerformed(ActionEvent e) {   
  757.     adaptee.jButton17_actionPerformed(e);   
  758.   }   
  759. }   
  760.   
  761. class Frame2_jButton14_actionAdapter implements java.awt.event.ActionListener {   
  762.   Frame2 adaptee;   
  763.   
  764.   Frame2_jButton14_actionAdapter(Frame2 adaptee) {   
  765.     this.adaptee = adaptee;   
  766.   }   
  767.   public void actionPerformed(ActionEvent e) {   
  768.     adaptee.jButton14_actionPerformed(e);   
  769.   }   
  770. }   
  771.   
  772. class Frame2_jButton7_actionAdapter implements java.awt.event.ActionListener {   
  773.   Frame2 adaptee;   
  774.   
  775.   Frame2_jButton7_actionAdapter(Frame2 adaptee) {   
  776.     this.adaptee = adaptee;   
  777.   }   
  778.   public void actionPerformed(ActionEvent e) {   
  779.     adaptee.jButton7_actionPerformed(e);   
  780.   }   
  781. }   
  782.   
  783. class Frame2_jButton8_actionAdapter implements java.awt.event.ActionListener {   
  784.   Frame2 adaptee;   
  785.   
  786.   Frame2_jButton8_actionAdapter(Frame2 adaptee) {   
  787.     this.adaptee = adaptee;   
  788.   }   
  789.   public void actionPerformed(ActionEvent e) {   
  790.     adaptee.jButton8_actionPerformed(e);   
  791.   }   
  792. }   
  793.   
  794. class Frame2_jButton13_actionAdapter implements java.awt.event.ActionListener {   
  795.   Frame2 adaptee;   
  796.   
  797.   Frame2_jButton13_actionAdapter(Frame2 adaptee) {   
  798.     this.adaptee = adaptee;   
  799.   }   
  800.   public void actionPerformed(ActionEvent e) {   
  801.     adaptee.jButton13_actionPerformed(e);   
  802.   }   
  803. }   
  804.   
  805. class Frame2_jButton18_actionAdapter implements java.awt.event.ActionListener {   
  806.   Frame2 adaptee;   
  807.   
  808.   Frame2_jButton18_actionAdapter(Frame2 adaptee) {   
  809.     this.adaptee = adaptee;   
  810.   }   
  811.   public void actionPerformed(ActionEvent e) {   
  812.     adaptee.jButton18_actionPerformed(e);   
  813.   }   
  814. }   
  815.   
  816. class Frame2_jButton112_actionAdapter implements java.awt.event.ActionListener {   
  817.   Frame2 adaptee;   
  818.   
  819.   Frame2_jButton112_actionAdapter(Frame2 adaptee) {   
  820.     this.adaptee = adaptee;   
  821.   }   
  822.   public void actionPerformed(ActionEvent e) {   
  823.     adaptee.jButton112_actionPerformed(e);   
  824.   }   
  825. }   
  826.   
  827. class Frame2_jMenuItem8_actionAdapter implements java.awt.event.ActionListener {   
  828.   Frame2 adaptee;   
  829.   
  830.   Frame2_jMenuItem8_actionAdapter(Frame2 adaptee) {   
  831.     this.adaptee = adaptee;   
  832.   }   
  833.   public void actionPerformed(ActionEvent e) {   
  834.     adaptee.jMenuItem8_actionPerformed(e);   
  835.   }   
  836. }   
  837.   
  838. class Frame2_jMenuItem1_actionAdapter implements java.awt.event.ActionListener {   
  839.   Frame2 adaptee;   
  840.   
  841.   Frame2_jMenuItem1_actionAdapter(Frame2 adaptee) {   
  842.     this.adaptee = adaptee;   
  843.   }   
  844.   public void actionPerformed(ActionEvent e) {   
  845.     adaptee.jMenuItem1_actionPerformed(e);   
  846.   }   
  847. }   
  848.   
  849. class Frame2_jMenuItem9_actionAdapter implements java.awt.event.ActionListener {   
  850.   Frame2 adaptee;   
  851.   
  852.   Frame2_jMenuItem9_actionAdapter(Frame2 adaptee) {   
  853.     this.adaptee = adaptee;   
  854.   }   
  855.   public void actionPerformed(ActionEvent e) {   
  856.     adaptee.jMenuItem9_actionPerformed(e);   
  857.   }   
  858. }   
  859.   
  860. class Frame2_jMenuItem10_actionAdapter implements java.awt.event.ActionListener {   
  861.   Frame2 adaptee;   
  862.   
  863.   Frame2_jMenuItem10_actionAdapter(Frame2 adaptee) {   
  864.     this.adaptee = adaptee;   
  865.   }   
  866.   public void actionPerformed(ActionEvent e) {   
  867.     adaptee.jMenuItem10_actionPerformed(e);   
  868.   }   
  869. }   
  870.   
  871. class Frame2_jMenuItem11_actionAdapter implements java.awt.event.ActionListener {   
  872.   Frame2 adaptee;   
  873.   
  874.   Frame2_jMenuItem11_actionAdapter(Frame2 adaptee) {   
  875.     this.adaptee = adaptee;   
  876.   }   
  877.   public void actionPerformed(ActionEvent e) {   
  878.     adaptee.jMenuItem11_actionPerformed(e);   
  879.   }   
  880. }   
  881.   
  882. class Frame2_jMenuItem12_actionAdapter implements java.awt.event.ActionListener {   
  883.   Frame2 adaptee;   
  884.   
  885.   Frame2_jMenuItem12_actionAdapter(Frame2 adaptee) {   
  886.     this.adaptee = adaptee;   
  887.   }   
  888.   public void actionPerformed(ActionEvent e) {   
  889.     adaptee.jMenuItem12_actionPerformed(e);   
  890.   }   
  891. }   
  892.   
  893. class Frame2_jPopupMenu1_mouseAdapter extends java.awt.event.MouseAdapter {   
  894.   Frame2 adaptee;   
  895.   
  896.   Frame2_jPopupMenu1_mouseAdapter(Frame2 adaptee) {   
  897.     this.adaptee = adaptee;   
  898.   }   
  899.   
  900. }   
  901.   
  902. class Frame2_contentPane_mouseAdapter extends java.awt.event.MouseAdapter {   
  903.   Frame2 adaptee;   
  904.   
  905.   Frame2_contentPane_mouseAdapter(Frame2 adaptee) {   
  906.     this.adaptee = adaptee;   
  907.   }   
  908.   
  909. }   
  910.   
  911. class Frame2_jTextField1_mouseAdapter extends java.awt.event.MouseAdapter {   
  912.   Frame2 adaptee;   
  913.   
  914.   Frame2_jTextField1_mouseAdapter(Frame2 adaptee) {   
  915.     this.adaptee = adaptee;   
  916.   }   
  917.   public void mouseReleased(MouseEvent e) {   
  918.     adaptee.jTextField1_mouseReleased(e);   
  919.   }   
  920. }  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个简单的 Java 计算器实现,其中包含加、减、乘、除、开方、求反等功能: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator implements ActionListener { private JFrame frame; private JTextField textField; private JButton addButton, subtractButton, multiplyButton, divideButton; private JButton sqrtButton, negateButton, equalsButton, clearButton; private double operand1, operand2; private String operator; public Calculator() { frame = new JFrame("Calculator"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Create the text field textField = new JTextField(10); textField.setEditable(false); frame.getContentPane().add(textField, BorderLayout.NORTH); // Create the buttons addButton = new JButton("+"); subtractButton = new JButton("-"); multiplyButton = new JButton("*"); divideButton = new JButton("/"); sqrtButton = new JButton("sqrt"); negateButton = new JButton("+/-"); equalsButton = new JButton("="); clearButton = new JButton("C"); // Add the buttons to the frame JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new GridLayout(4, 4)); buttonPanel.add(addButton); buttonPanel.add(subtractButton); buttonPanel.add(multiplyButton); buttonPanel.add(divideButton); buttonPanel.add(sqrtButton); buttonPanel.add(negateButton); buttonPanel.add(equalsButton); buttonPanel.add(clearButton); for (int i = 1; i <= 9; i++) { JButton button = new JButton(String.valueOf(i)); button.addActionListener(this); buttonPanel.add(button); } JButton button = new JButton("0"); button.addActionListener(this); buttonPanel.add(button); frame.getContentPane().add(buttonPanel, BorderLayout.CENTER); // Add action listeners to the buttons addButton.addActionListener(this); subtractButton.addActionListener(this); multiplyButton.addActionListener(this); divideButton.addActionListener(this); sqrtButton.addActionListener(this); negateButton.addActionListener(this); equalsButton.addActionListener(this); clearButton.addActionListener(this); // Set the size and show the frame frame.setSize(300, 300); frame.setVisible(true); } public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("C")) { textField.setText(""); operand1 = 0; operand2 = 0; operator = ""; } else if (action.equals("+")) { operand1 = Double.parseDouble(textField.getText()); operator = "+"; textField.setText(""); } else if (action.equals("-")) { operand1 = Double.parseDouble(textField.getText()); operator = "-"; textField.setText(""); } else if (action.equals("*")) { operand1 = Double.parseDouble(textField.getText()); operator = "*"; textField.setText(""); } else if (action.equals("/")) { operand1 = Double.parseDouble(textField.getText()); operator = "/"; textField.setText(""); } else if (action.equals("sqrt")) { operand1 = Double.parseDouble(textField.getText()); double result = Math.sqrt(operand1); textField.setText(String.valueOf(result)); } else if (action.equals("+/-")) { double value = Double.parseDouble(textField.getText()); value = -value; textField.setText(String.valueOf(value)); } else if (action.equals("=")) { operand2 = Double.parseDouble(textField.getText()); if (operator.equals("+")) { double result = operand1 + operand2; textField.setText(String.valueOf(result)); } else if (operator.equals("-")) { double result = operand1 - operand2; textField.setText(String.valueOf(result)); } else if (operator.equals("*")) { double result = operand1 * operand2; textField.setText(String.valueOf(result)); } else if (operator.equals("/")) { double result = operand1 / operand2; textField.setText(String.valueOf(result)); } operand1 = 0; operand2 = 0; operator = ""; } else { String value = textField.getText(); value += action; textField.setText(value); } } public static void main(String[] args) { Calculator calculator = new Calculator(); } } ``` 这个计算器界面比较简单,只包含了数字按钮、加、减、乘、除、开方、求反、等于和清除按钮。当用户点击数字和操作符按钮时,程序会根据当前的操作符和操作数计算出结果并更新文本框的显示内容。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值