JAVA¿Î³ÌÉè¼Æ¼ÆËãÆ÷ ÏÂÔØ±¾ÎÄ

£¨3£©³Ë·½È¡Óà·¨Á÷³Ì

Èý¡¢ÏµÍ³ÔËÐнá¹û£¨½ØÍ¼£©

1¡¢Ö÷²Ëµ¥

½«SÌí¼Óµ½showÎı¾¿ò Y Ö´Ðг˷½¡¢È¡Óà·¨ÔËËãµÃMun1ÊÇ·ñ´æÔÚ N ½«SÌí¼Óµ½showÎı¾¿ò

ËÄ¡¢¿Î³ÌÉè¼Æ×ܽá

ͨ¹ý´Ë´Î¿Î³ÌÉè¼Æ£¬Ê¹ÎÒ¸ü¼ÓÔúʵµÄÕÆÎÕÁËÓйØJAVAͼÐνçÃæ²¼¾ÖµÈ·½ÃæµÄ֪ʶ£¬ËäÈ»ÔÚÉè¼Æ¹ý³ÌÖÐÒ²Óöµ½Á˺ܶàÎÊÌ⣬µ«¾­¹ýÒ»´ÎÓÖÒ»´ÎµÄ˼¿¼£¬Ò»±éÓÖÒ»±é¼ì²éºÍ·´¸´ÐÞ¸ÄÖÕÓÚÕÒµ½ÁËÔ­ÒòËùÔÚ£¬Ò²±©Â¶ÁËǰÆÚÎÒÔÚÕâ·½ÃæµÄ֪ʶǷȱ¡£¿Î³ÌÉè¼ÆÊÇÒ»ÖÖʵ¼ù»î¶¯£¬²»µ«¿ÉÒÔÌáÉýרҵ֪ʶºÍרҵÄÜÁ¦£¬Ò²ÅàÑøÁËÎÒÃǶÀÁ¢Ë¼¿¼£¬¶¯ÊÖ²Ù×÷µÄÄÜÁ¦£¬Ê¹ÎÒ¶Ô³éÏóµÄ֪ʶÓÐÁ˾ßÌåµÄÈÏʶ¡£Õâ¶ÔÓÚÎÒÃǵĽ«À´Ò²ÓкܴóµÄ°ïÖú¡£´Ë´Î¿Î³ÌÉè¼ÆÒ²ÈÃÎÒÃ÷°×ûÓÐ×îÍêÉÆµÄ³ÌÐò´úÂ룬ֻÓв»¶ÏµØ¸ÄÉÆ²ÅÄÜʹ³ÌÐò±äµÃ¸üÍêÃÀ£¬Í¬Ê±Ò²ÔöÇ¿ÁËÎÒ¶ÔJAVAµÄÐËȤ£¬ÏàÐżÌÐø±£³ÖÏÂÈ¥¶ÔJAVAµÄÀí½âÒ»¶¨»á¸üÉÏÒ»²ãÂ¥¡£

¸½Â¼£º³ÌÐòÔ´Âë

import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener;

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JSeparator; import javax.swing.JTextField;

public class Calculator extends JFrame implements ActionListener {

JMenuBar jmb; JMenu jm1,jm2,jm3; JMenuItem jmi;

/** ¼ÆËãÆ÷ÉϵļüµÄÏÔʾÃû×Ö */

private final String[] KEYS = { \, \, \, \, \, \, \, \,

\, \, \, \, \, \, \, \, \, \, \, \ }; /** ¼ÆËãÆ÷ÉϵŦÄܼüµÄÏÔʾÃû×Ö */

private final String[] COMMAND = { \, \, \ };

/** ¼ÆËãÆ÷ÉϼüµÄ°´Å¥ */

private JButton keys[] = new JButton[KEYS.length];

/** ¼ÆËãÆ÷ÉϵŦÄܼüµÄ°´Å¥ */

private JButton commands[] = new JButton[COMMAND.length]; /** ¼ÆËãÆ÷×ó±ßµÄMµÄ°´Å¥ */

/** ¼ÆËã½á¹ûÎı¾¿ò */

private JTextField resultText = new JTextField(\);

// ±êÖ¾Óû§°´µÄÊÇ·ñÊÇÕû¸ö±í´ïʽµÄµÚÒ»¸öÊý×Ö,»òÕßÊÇÔËËã·ûºóµÄµÚÒ»¸öÊý×Ö private boolean firstDigit = true; // ¼ÆËãµÄÖмä½á¹û¡£

private double resultNum = 0.0; // µ±Ç°ÔËËãµÄÔËËã·û

private String operator = \;

// ²Ù×÷ÊÇ·ñºÏ·¨

private boolean operateValidFlag = true; /** * ¹¹Ô캯Êý

*/

public Calculator() { super();

JMenuBar jmb=new JMenuBar();

this.setJMenuBar(jmb);

JMenu jm=new JMenu(\±à¼­(E)\); jmb.add(jm);

jmi= new JMenuItem(\¸´ÖÆ(c) Ctrl+c\); jm.add(jmi);

jmi= new JMenuItem(\Õ³Ìù(p) Ctrl+v\); jm.add(jmi);

jm2=new JMenu(\²é¿´(v)\); jmb.add(jm2);

jmi= new JMenuItem(\±ê×¼ÐÍ(T)\); jm2.add(jmi);

jmi= new JMenuItem(\¿ÆÑ§ÐÍ(S)\); jm2.add(jmi);

jm2.add(new JSeparator());

jmi= new JMenuItem(\Êýѧ·Ö×é(I)\); jm2.add(jmi);

jm3=new JMenu(\°ïÖú(H)\); jmb.add(jm3);

jmi= new JMenuItem(\°ïÖúÖ÷Ìâ(H)\); jm3.add(jmi);

jm3.add(new JSeparator());

jmi= new JMenuItem(\¹ØÓÚ¼ÆËãÆ÷(A)\); jm3.add(jmi);

// ³õʼ»¯¼ÆËãÆ÷ init();

// ÉèÖüÆËãÆ÷µÄ±³¾°ÑÕÉ«

this.setBackground(Color.LIGHT_GRAY); this.setTitle(\¼ÆËãÆ÷\);

// ÔÚÆÁÄ»(500, 300)×ø±ê´¦ÏÔʾ¼ÆËãÆ÷ this.setLocation(500, 300); // ²»ÐíÐ޸ļÆËãÆ÷µÄ´óС

this.setResizable(false); // ʹ¼ÆËãÆ÷Öи÷×é¼þ´óСºÏÊÊ this.pack(); } /**

* ³õʼ»¯¼ÆËãÆ÷

*/

private void init() {

// Îı¾¿òÖеÄÄÚÈݲÉÓÃÓÒ¶ÔÆë·½Ê½

resultText.setHorizontalAlignment(JTextField.RIGHT); // ²»ÔÊÐíÐ޸Ľá¹ûÎı¾¿ò

resultText.setEditable(false);

// ÉèÖÃÎı¾¿ò±³¾°ÑÕɫΪ°×É«

resultText.setBackground(Color.WHITE);

// ³õʼ»¯¼ÆËãÆ÷ÉϼüµÄ°´Å¥£¬½«¼ü·ÅÔÚÒ»¸öÃæ°åÄÚ JPanel calckeysPanel = new JPanel();

// ÓÃÍø¸ñ²¼¾ÖÆ÷£¬4ÐУ¬5ÁеÄÍø¸ñ£¬Íø¸ñÖ®¼äµÄˮƽ·½Ïò¼ä¸ôΪ3¸öÏóËØ£¬´¹Ö±·½Ïò¼ä¸ôΪ3¸öÏóËØ

calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3)); for (int i = 0; i < KEYS.length; i++) { keys[i] = new JButton(KEYS[i]); calckeysPanel.add(keys[i]);

keys[i].setForeground(Color.blue); }

// ÔËËã·û¼üÓúìÉ«±êʾ£¬ÆäËû¼üÓÃÀ¶É«±íʾ keys[3].setForeground(Color.red); keys[8].setForeground(Color.red); keys[13].setForeground(Color.red); keys[18].setForeground(Color.red); keys[19].setForeground(Color.red);

// ³õʼ»¯¹¦Äܼü£¬¶¼ÓúìÉ«±êʾ¡£½«¹¦Äܼü·ÅÔÚÒ»¸öÃæ°åÄÚ JPanel commandsPanel = new JPanel();

// ÓÃÍø¸ñ²¼¾ÖÆ÷£¬1ÐУ¬3ÁеÄÍø¸ñ£¬Íø¸ñÖ®¼äµÄˮƽ·½Ïò¼ä¸ôΪ3¸öÏóËØ£¬´¹Ö±·½Ïò¼ä¸ôΪ3¸öÏóËØ

commandsPanel.setLayout(new GridLayout(1, 3, 3, 3)); for (int i = 0; i < COMMAND.length; i++) { commands[i] = new JButton(COMMAND[i]); commandsPanel.add(commands[i]); commands[i].setForeground(Color.red); }

// ÏÂÃæ½øÐмÆËãÆ÷µÄÕûÌå²¼¾Ö£¬½«calckeysºÍcommandÃæ°å·ÅÔÚ¼ÆËãÆ÷µÄÖÐϲ¿

// н¨Ò»¸ö´óµÄÃæ°å£¬½«ÉÏÃæ½¨Á¢µÄcommandºÍcalckeysÃæ°å·ÅÔÚ¸ÃÃæ°åÄÚ JPanel panel1 = new JPanel();

// Ãæ°å²ÉÓñ߽粼¾Ö¹ÜÀíÆ÷£¬Ãæ°åÀï×é¼þÖ®¼äµÄˮƽºÍ´¹Ö±·½ÏòÉϼä¸ô¶¼Îª3ÏóËØ panel1.setLayout(new BorderLayout(3, 3));