黑马程序员技术交流社区

标题: 大神戳进来,看看我的两个文本框监听器怎么罢工了 [打印本页]

作者: Uncle.Lee    时间: 2013-11-28 22:28
标题: 大神戳进来,看看我的两个文本框监听器怎么罢工了
下面的程序是我练习监听器用法写的,

其中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. }
复制代码



作者: Uncle.Lee    时间: 2013-11-29 22:06
怎么审核没通过么?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2