import java.awt.*; import java.awt.event.*; class AwtCount { private Frame f; private TextField tf1; private TextField tf2; private TextField sign; private TextField tf; private Button but; private Dialog d; private Button okBut; private Label lab; AwtCount() { init(); } public void init() { f = new Frame("计算工具"); f.setBounds(300,100,300,100); f.setLayout(new FlowLayout());//设置布局 tf1 = new TextField(5); sign = new TextField(1); tf2 = new TextField(5); but = new Button("="); tf = new TextField(5); d = new Dialog(f,"提示信息",true); d.setBounds(400,200,150,100); d.setLayout(new FlowLayout()); lab = new Label(); okBut = new Button("确定"); d.add(lab); d.add(okBut); f.add(tf1); f.add(sign); f.add(tf2); f.add(but); f.add(tf); myEvent(); f.setVisible(true); } private void myEvent() { //为=按钮添加监听事件 but.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { double num = 0.0; double num1 = Double.parseDouble(tf1.getText()); double num2 = Double.parseDouble(tf2.getText()); String ssign= new String(sign.getText()); if (ssign.compareTo("+") == 0) num = num1 + num2; else if (ssign .compareTo("-") == 0) num = num1 - num2; else if (ssign.compareTo("*") == 0) num = num1 * num2; else if (ssign.compareTo("/") == 0) num = num1 / num2; else{ String info = "您输入的符号有误!"; lab.setText(info); d.setVisible(true); } tf.setText(new Double(num).toString()); } }); //为关闭按钮添加监听事件 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //为弹出对话框的按钮设置监听 okBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { d.setVisible(false); } }); } public static void main(String[] args) { new AwtCount(); } } /* 要用好窗体首先要明确各个组件之间的关系,了解监听事件与被监听对象以监听的内容。 */