题目:
2. 编程程序,设计并实现如下图所示的加法计算器,并通过extends WindowAdapter类实现窗口的关闭。
先上代码:
package Tuxinghua3;
import java.awt.*;
import java.awt.event.*;
public class njj02 extends Frame {
private TextField numField1, numField2, resultField;
private Button addButton;
public static void main(String[] args) {
njj02 window = new njj02();
window.setVisible(true);
}
public njj02() {
setLayout(new GridLayout(3, 2));
numField1 = new TextField();
numField2 = new TextField();
resultField = new TextField();
resultField.setEditable(false); //文本框不可编辑
addButton = new Button("+");
add(new Label("第一个操作数:"));
add(numField1);
add(new Label("第二个操作数:"));
add(numField2);
add(addButton);
add(resultField);
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String numStr1 = numField1.getText();
String numStr2 = numField2.getText();
int num1 = Integer.parseInt(numStr1);
int num2 = Integer.parseInt(numStr2);
int sum = num1 + num2;
resultField.setText(Integer.toString(sum));
}
});
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
setTitle("NJj's加法计算器");
setSize(300, 150);
}
}
代码解释:
package Tuxinghua3;
import java.awt.*;
import java.awt.event.*;
//导入需要使用的Java包,包括java.awt和java.awt.event。
public class njj02 extends Frame {//定义名为njj02的类,继承自Frame类。
private TextField numField1, numField2, resultField;
private Button addButton;
/*定义4个成员变量,分别为2个文本框numField1和numField2、一个结果文本框resultField以及一个按钮addButton。*/
public static void main(String[] args) {
njj02 window = new njj02();
window.setVisible(true);
}//程序的入口main()方法。创建一个njj02实例,并设置可见。
public njj02() {
setLayout(new GridLayout(3, 2));
//构造函数,设置布局管理器为GridLayout,创建一个3行2列的网格布局。
numField1 = new TextField();
numField2 = new TextField();
resultField = new TextField();
resultField.setEditable(false); //文本框不可编辑
addButton = new Button("+");
//创建3个文本框和1个按钮。其中resultField文本框不可编辑。
add(new Label("第一个操作数:"));
add(numField1);
add(new Label("第二个操作数:"));
add(numField2);
add(addButton);
add(resultField);
//将标签、文本框和按钮添加到窗口中。
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String numStr1 = numField1.getText();
String numStr2 = numField2.getText();
int num1 = Integer.parseInt(numStr1);
int num2 = Integer.parseInt(numStr2);
int sum = num1 + num2;
resultField.setText(Integer.toString(sum));
}
});
/*为按钮添加一个动作监听器,当用户单击按钮时,获取两个文本框的值,进行加法运算,并将结果设置到结果文本框中。*/
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
//为窗口添加一个窗口事件监听器,当用户关闭窗口时,调用dispose()方法,释放窗口资源。
setTitle("NJj's加法计算器");
setSize(300, 150);
//设置窗口标题和大小。
}
}