import java.awt.event.*; import java.math.BigInteger; import java.awt.*; import javax.swing.*; public class Caculate1 extends JFrame { JTextArea text1, text2; JButton jb1, jb2; JLabel label; Caculate1() { text1 = new JTextArea(2, 4); text2 = new JTextArea(2, 4); jb1 = new JButton("+"); jb2 = new JButton("*"); label = new JLabel(); JSplitPane p1; JPanel p2 = new JPanel(); jb1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String n1 = text1.getText(); String n2 = text2.getText(); try { BigInteger num1 = new BigInteger(n1); BigInteger num2 = new BigInteger(n2); label.setText((num1.add(num2)).toString()); } catch (Exception ee) { label.setText("请输入整数"); text1.setText(null); text2.setText(null); } } }); jb2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String n1 = text1.getText(); String n2 = text2.getText(); try { BigInteger num1 = new BigInteger(n1); BigInteger num2 = new BigInteger(n2); label.setText((num1.multiply(num2)).toString()); } catch (Exception ee) { label.setText("请输入整数"); text1.setText(null); text2.setText(null); } } }); setLayout(new GridLayout(3, 1)); p1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, text1, text2); p1.setDividerLocation(117); add(p1); p2.setLayout(new GridLayout(1, 2)); p2.add(jb1); p2.add(jb2); add(p2); add(label); setBounds(100, 100, 260, 190); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public static void main(String[] args) { new Caculate(); } }给这个代码加一个注释
时间: 2024-01-13 20:02:31 浏览: 152
下面是对这段代码的注释:
```java
import java.awt.event.*;
import java.math.BigInteger;
import java.awt.*;
import javax.swing.*;
public class Caculate1 extends JFrame {
JTextArea text1, text2; // 文本框,用于输入数字
JButton jb1, jb2; // 按钮,用于执行加法或乘法操作
JLabel label; // 标签,用于显示计算结果
Caculate1() {
text1 = new JTextArea(2, 4); // 创建高为2,宽为4的文本框1
text2 = new JTextArea(2, 4); // 创建高为2,宽为4的文本框2
jb1 = new JButton("+"); // 创建加号按钮
jb2 = new JButton("*"); // 创建乘号按钮
label = new JLabel(); // 创建标签
// 创建分割面板
JSplitPane p1;
JPanel p2 = new JPanel();
// 给加号按钮添加事件监听器
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String n1 = text1.getText(); // 获取文本框1中的文本
String n2 = text2.getText(); // 获取文本框2中的文本
try {
BigInteger num1 = new BigInteger(n1); // 将文本1转换为大整数
BigInteger num2 = new BigInteger(n2); // 将文本2转换为大整数
label.setText((num1.add(num2)).toString()); // 显示计算结果
} catch (Exception ee) {
label.setText("请输入整数"); // 如果输入不合法,则显示提示信息
text1.setText(null); // 清空文本框1
text2.setText(null); // 清空文本框2
}
}
});
// 给乘号按钮添加事件监听器,与加号按钮类似
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String n1 = text1.getText();
String n2 = text2.getText();
try {
BigInteger num1 = new BigInteger(n1);
BigInteger num2 = new BigInteger(n2);
label.setText((num1.multiply(num2)).toString());
} catch (Exception ee) {
label.setText("请输入整数");
text1.setText(null);
text2.setText(null);
}
}
});
setLayout(new GridLayout(3, 1)); // 设置布局为3行1列的网格布局
p1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, text1, text2); // 创建水平分割面板
p1.setDividerLocation(117); // 设置分割线位置
add(p1); // 将分割面板添加到窗口中
p2.setLayout(new GridLayout(1, 2)); // 设置面板2为1行2列的网格布局
p2.add(jb1); // 将加号按钮添加到面板2中
p2.add(jb2); // 将乘号按钮添加到面板2中
add(p2); // 将面板2添加到窗口中
add(label); // 将标签添加到窗口中
setBounds(100, 100, 260, 190); // 设置窗口的位置和大小
setVisible(true); // 显示窗口
validate(); // 验证窗口
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 设置窗口关闭时的操作
}
public static void main(String[] args) {
new Caculate1(); // 创建计算器对象
}
}
```
阅读全文