黑马程序员技术交流社区
标题:
大神戳进来,看看我的两个文本框监听器怎么罢工了
[打印本页]
作者:
Uncle.Lee
时间:
2013-11-28 22:28
标题:
大神戳进来,看看我的两个文本框监听器怎么罢工了
下面的程序是我练习监听器用法写的,
其中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("简单的计算器");
}
}
复制代码
作者:
Uncle.Lee
时间:
2013-11-29 22:06
怎么审核没通过么?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2