⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exercise23_2.java

📁 java程序设计导论(daniel liang著) 所有偶数课后习题答案
💻 JAVA
字号:
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Exercise23_2 extends JApplet implements ActionListener {  // Text fields for Number 1, Number 2, and Result  private JTextField jtfNum1, jtfNum2, jtfResult;  // Buttons "Add", "Subtract", "Multiply" and "Divide"  private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;  // Menu items "Add", "Subtract", "Multiply","Divide" and "Close"  private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;  private JPopupMenu jPopupMenu1 = new JPopupMenu();  public Exercise23_2() {    // Add menu "Operation" to menu bar    JMenu operationMenu = new JMenu("Operation");    operationMenu.setMnemonic('O');    jPopupMenu1.add(operationMenu);    // Add menu "Exit" in menu bar    JMenu exitMenu = new JMenu("Exit");    exitMenu.setMnemonic('E');    jPopupMenu1.add(exitMenu);    // Add menu items with mnemonics to menu "Operation"    operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));    operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));    operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));    operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));    exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));    // Set keyboard accelerators    jmiAdd.setAccelerator(      KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));    jmiSub.setAccelerator(      KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));    jmiMul.setAccelerator(      KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK));    jmiDiv.setAccelerator(      KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));    // Panel p1 to hold text fields and labels    JPanel p1 = new JPanel();    p1.setLayout(new FlowLayout());    p1.add(new JLabel("Number 1"));    p1.add(jtfNum1 = new JTextField(3));    p1.add(new JLabel("Number 2"));    p1.add(jtfNum2 = new JTextField(3));    p1.add(new JLabel("Result"));    p1.add(jtfResult = new JTextField(4));    jtfResult.setEditable(false);    // Panel p2 to hold buttons    JPanel p2 = new JPanel();    p2.setLayout(new FlowLayout());    p2.add(jbtAdd = new JButton("Add"));    p2.add(jbtSub = new JButton("Subtract"));    p2.add(jbtMul = new JButton("Multiply"));    p2.add(jbtDiv = new JButton("Divide"));    getContentPane().add(p1, BorderLayout.NORTH);    getContentPane().add(p2, BorderLayout.SOUTH);    // Register listeners    jbtAdd.addActionListener(this);    jbtSub.addActionListener(this);    jbtMul.addActionListener(this);    jbtDiv.addActionListener(this);    jmiAdd.addActionListener(this);    jmiSub.addActionListener(this);    jmiMul.addActionListener(this);    jmiDiv.addActionListener(this);    jmiClose.addActionListener(this);    p1.addMouseListener(new MouseAdapter() {      public void mousePressed(MouseEvent e) { // For Motif        showPopup(e);      }      public void mouseReleased(MouseEvent e) { // For Windows        showPopup(e);      }    });  }  /** Display popup menu when triggered */  private void showPopup(java.awt.event.MouseEvent evt) {    if (evt.isPopupTrigger())      jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY());  }  /** Handle ActionEvent from buttons and menu items */  public void actionPerformed(ActionEvent e) {    String actionCommand = e.getActionCommand();    // Handle button events    if (e.getSource() instanceof JButton) {      if ("Add".equals(actionCommand))        calculate('+');      else if ("Subtract".equals(actionCommand))        calculate('-');      else if ("Multiply".equals(actionCommand))        calculate('*');      else if ("Divide".equals(actionCommand))        calculate('/');    }    else if (e.getSource() instanceof JMenuItem) {      // Handle menu item events      if ("Add".equals(actionCommand))        calculate('+');      else if ("Subtract".equals(actionCommand))        calculate('-');      else if ("Multiply".equals(actionCommand))        calculate('*');      else if ("Divide".equals(actionCommand))        calculate('/');      else if ("Close".equals(actionCommand))        System.exit(0);    }  }  /** Calculate and show the result in jtfResult */  private void calculate(char operator) {    // Obtain Number 1 and Number 2    int num1 = (Integer.parseInt(jtfNum1.getText().trim()));    int num2 = (Integer.parseInt(jtfNum2.getText().trim()));    int result = 0;    // Perform selected operation    switch (operator) {      case '+': result = num1 + num2;                break;      case '-': result = num1 - num2;                break;      case '*': result = num1 * num2;                break;      case '/': result = num1 / num2;    }    // Set result in jtfResult    jtfResult.setText(String.valueOf(result));  }  public static void main(String[] args) {    Exercise23_2 applet = new Exercise23_2();    JFrame frame = new JFrame();    //EXIT_ON_CLOSE == 3    frame.setDefaultCloseOperation(3);    frame.setTitle("Exercise23_2");    frame.getContentPane().add(applet, BorderLayout.CENTER);    applet.init();    applet.start();    frame.setSize(400,320);    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();    frame.setLocation((d.width - frame.getSize().width) / 2,      (d.height - frame.getSize().height) / 2);    frame.setVisible(true);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -