下面的程序是我练习监听器用法写的,
其中field1和field2的监听器并没有被启用,,自己找不到病根
希望大神帮我看看病根所在,3Q先。。。。。
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JFrame;
- import javax.swing.JOptionPane;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- public class MyCalculator extends JFrame {
- private static final long serialVersionUID = 1L;
- private JTextField field1, field2;
- private JComboBox operator;
- private JButton button;
- private JTextArea tarea;
- private double num1, num2, result;
- private String cal;
- MyCalculator() {
- init();
- myEvent();
- setVisible(true);
- setResizable(false);
- setLayout(new FlowLayout());
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- private void init() {
- field1 = new JTextField(8);
- field2 = new JTextField(8);
- operator = new JComboBox();
- button = new JButton("计 算");
- tarea = new JTextArea(15, 35);
- JScrollPane scroll = new JScrollPane(tarea);
- operator.addItem("选择运算符");
- operator.addItem("+");
- operator.addItem("-");
- operator.addItem("*");
- operator.addItem("/");
- add(field1);
- add(operator);
- add(field2);
- add(button);
- add(scroll);
- }
- private void myEvent() {
- field1.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- num1 = Double.parseDouble(field1.getText());
- }
- });
- field2.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- num2 = Double.parseDouble(field2.getText());
- }
- });
- operator.addItemListener(new ItemListener() {
- public void itemStateChanged(ItemEvent e) {
- cal = operator.getSelectedItem().toString();
- }
- });
- button.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- try{
-
- if (cal.equals("+"))
- result = num1 + num2;
- else if (cal.equals("-"))
- result = num1 - num2;
- else if (cal.equals("*"))
- result = num1 * num2;
- else if (cal.equals("/"))
- result = num1 / num2;
- tarea.append(num1 + cal + num2 + "=" + result + "\n");
-
- }catch(Exception e1){
-
- JOptionPane.showMessageDialog(null,"请输入正确的格式");
-
- }
- }
- });
- }
-
- }
复制代码
- public class Calculator {
- public static void main(String[] args){
- MyCalculator ccl=new MyCalculator();
- ccl.setBounds(450,200,450,350);
- ccl.setTitle("简单的计算器");
- }
- }
复制代码
|