A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

下面的程序是我练习监听器用法写的,

其中field1和field2的监听器并没有被启用,,自己找不到病根

希望大神帮我看看病根所在,3Q先。。。。。

  1. import java.awt.FlowLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.ItemEvent;
  5. import java.awt.event.ItemListener;

  6. import javax.swing.JButton;
  7. import javax.swing.JComboBox;
  8. import javax.swing.JFrame;
  9. import javax.swing.JOptionPane;
  10. import javax.swing.JScrollPane;
  11. import javax.swing.JTextArea;
  12. import javax.swing.JTextField;

  13. public class MyCalculator extends JFrame {

  14.         private static final long serialVersionUID = 1L;
  15.         private JTextField field1, field2;
  16.         private JComboBox operator;
  17.         private JButton button;
  18.         private JTextArea tarea;
  19.         private double num1, num2, result;
  20.         private String cal;

  21.         MyCalculator() {
  22.                 init();
  23.                 myEvent();
  24.                 setVisible(true);
  25.                 setResizable(false);
  26.                 setLayout(new FlowLayout());
  27.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  28.         }

  29.         private void init() {
  30.                 field1 = new JTextField(8);
  31.                 field2 = new JTextField(8);
  32.                 operator = new JComboBox();
  33.                 button = new JButton("计  算");
  34.                 tarea = new JTextArea(15, 35);
  35.                 JScrollPane scroll = new JScrollPane(tarea);

  36.                 operator.addItem("选择运算符");
  37.                 operator.addItem("+");
  38.                 operator.addItem("-");
  39.                 operator.addItem("*");
  40.                 operator.addItem("/");

  41.                 add(field1);
  42.                 add(operator);
  43.                 add(field2);
  44.                 add(button);
  45.                 add(scroll);

  46.         }

  47.         private void myEvent() {
  48.                 field1.addActionListener(new ActionListener() {
  49.                         public void actionPerformed(ActionEvent e) {
  50.                                 num1 = Double.parseDouble(field1.getText());
  51.                         }
  52.                 });

  53.                 field2.addActionListener(new ActionListener() {
  54.                         public void actionPerformed(ActionEvent e) {
  55.                                 num2 = Double.parseDouble(field2.getText());
  56.                         }
  57.                 });

  58.                 operator.addItemListener(new ItemListener() {
  59.                         public void itemStateChanged(ItemEvent e) {
  60.                                 cal = operator.getSelectedItem().toString();
  61.                         }
  62.                 });

  63.                 button.addActionListener(new ActionListener() {
  64.                         public void actionPerformed(ActionEvent e) {
  65.                                 try{
  66.                                
  67.                                 if (cal.equals("+"))
  68.                                         result = num1 + num2;
  69.                                 else if (cal.equals("-"))
  70.                                         result = num1 - num2;
  71.                                 else if (cal.equals("*"))
  72.                                         result = num1 * num2;
  73.                                 else if (cal.equals("/"))
  74.                                         result = num1 / num2;
  75.                                 tarea.append(num1 + cal + num2 + "=" + result + "\n");
  76.                                
  77.                                 }catch(Exception e1){
  78.                                        
  79.                                         JOptionPane.showMessageDialog(null,"请输入正确的格式");
  80.                                        
  81.                                 }
  82.                         }

  83.                 });

  84.         }
  85.        
  86. }
复制代码

  1. public class Calculator {
  2.         public static void main(String[] args){
  3.                 MyCalculator ccl=new MyCalculator();
  4.                 ccl.setBounds(450,200,450,350);
  5.                 ccl.setTitle("简单的计算器");
  6.         }
  7. }
复制代码


评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
狼王 + 1 + 6 很给力!

查看全部评分

1 个回复

倒序浏览
怎么审核没通过么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马