Compare commits
No commits in common. 'main' and 'hac' have entirely different histories.
@ -0,0 +1,3 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8 (2)" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/jdzy2.iml" filepath="$PROJECT_DIR$/.idea/jdzy2.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,127 @@
|
||||
package xzk;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class Calculator extends JFrame implements ActionListener {
|
||||
|
||||
private JTextField num1Field, num2Field, resultField;
|
||||
private JComboBox<String> operatorBox;
|
||||
|
||||
public Calculator() {
|
||||
|
||||
super("简单计算器");
|
||||
|
||||
|
||||
setLayout(new BorderLayout());
|
||||
|
||||
// 创建面板
|
||||
JPanel inputPanel = new JPanel(new GridBagLayout());
|
||||
GridBagConstraints gbc = new GridBagConstraints();
|
||||
gbc.insets = new Insets(5, 5, 5, 5); // 设置组件之间的间距
|
||||
|
||||
// 创建输入字段和标签
|
||||
gbc.gridx = 0;
|
||||
gbc.gridy = 0;
|
||||
inputPanel.add(new JLabel("第一个数字:"), gbc);
|
||||
gbc.gridx = 1;
|
||||
num1Field = new JTextField(10);
|
||||
inputPanel.add(num1Field, gbc);
|
||||
|
||||
gbc.gridy = 1;
|
||||
gbc.gridx = 0;
|
||||
inputPanel.add(new JLabel("第二个数字:"), gbc);
|
||||
gbc.gridx = 1;
|
||||
num2Field = new JTextField(10);
|
||||
inputPanel.add(num2Field, gbc);
|
||||
|
||||
gbc.gridy = 2;
|
||||
gbc.gridx = 0;
|
||||
inputPanel.add(new JLabel("操作符:"), gbc);
|
||||
gbc.gridx = 1;
|
||||
operatorBox = new JComboBox<>(new String[]{"+", "-", "*", "/", "%"});
|
||||
inputPanel.add(operatorBox, gbc);
|
||||
|
||||
gbc.gridy = 3;
|
||||
gbc.gridx = 0;
|
||||
inputPanel.add(new JLabel("结果:"), gbc);
|
||||
gbc.gridx = 1;
|
||||
resultField = new JTextField(10);
|
||||
resultField.setEditable(false);
|
||||
inputPanel.add(resultField, gbc);
|
||||
|
||||
// 创建计算按钮
|
||||
JButton calculateButton = new JButton("计算");
|
||||
gbc.gridy = 4;
|
||||
gbc.gridx = 0;
|
||||
gbc.gridwidth = 2;
|
||||
gbc.fill = GridBagConstraints.HORIZONTAL;
|
||||
inputPanel.add(calculateButton, gbc);
|
||||
|
||||
// 添加事件监听器
|
||||
calculateButton.addActionListener(this);
|
||||
|
||||
// 设置面板背景色
|
||||
inputPanel.setBackground(Color.LIGHT_GRAY);
|
||||
|
||||
// 将面板添加到窗口
|
||||
add(inputPanel, BorderLayout.CENTER);
|
||||
|
||||
// 设置窗口属性
|
||||
setSize(400, 300);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setLocationRelativeTo(null); // 窗口居中显示
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
try {
|
||||
double num1 = Double.parseDouble(num1Field.getText());
|
||||
double num2 = Double.parseDouble(num2Field.getText());
|
||||
String operator = (String) operatorBox.getSelectedItem();
|
||||
double result;
|
||||
|
||||
switch (operator) {
|
||||
case "+":
|
||||
result = num1 + num2;
|
||||
break;
|
||||
case "-":
|
||||
result = num1 - num2;
|
||||
break;
|
||||
case "*":
|
||||
result = num1 * num2;
|
||||
break;
|
||||
case "/":
|
||||
if (num2 != 0) {
|
||||
result = num1 / num2;
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "错误:除数不能为零");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case "%":
|
||||
if (num2 != 0) {
|
||||
result = num1 % num2;
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "错误:除数不能为零");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
JOptionPane.showMessageDialog(this, "无效的操作符!");
|
||||
return;
|
||||
}
|
||||
|
||||
resultField.setText(String.format("%.2f", result));
|
||||
} catch (NumberFormatException ex) {
|
||||
JOptionPane.showMessageDialog(this, "请输入有效的数字");
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new Calculator();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue