第二次作业
[实验目的]
1.掌握软件开发的基本流程
2.掌握常用的软件开发方式和工具:eclipse。
[实验内容]
设计一个包含登录界面的计算器软件,该软件可以实现第一次作业中的全部功能,同时可以保存用户的历史计算记录(保存数据最好使用数据库)。
【具体操作】
2.登录界面及计算器代码
登录界面代码
package jisuanji;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginFrame extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;
public LoginFrame() {
setTitle("登录界面");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(9, 2));
JLabel usernameLabel = new JLabel("姓名:");
usernameField = new JTextField(20);
JLabel passwordLabel = new JLabel("密码:");
passwordField = new JPasswordField(20);
JButton loginButton = new JButton("登录");
panel.add(usernameLabel);
panel.add(usernameField);
panel.add(passwordLabel);
panel.add(passwordField);
panel.add(new JLabel());
panel.add(loginButton);
add(panel);
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = String.valueOf(passwordField.getPassword());
if (username.equals("田丽娟") && password.equals("1108")) {
dispose();
CalculatorFrame calculatorFrame = new CalculatorFrame();
calculatorFrame.setVisible(true);
} else {
JOptionPane.showMessageDialog(LoginFrame.this, "用户名或密码错误!", "登录失败", JOptionPane.ERROR_MESSAGE);
}
}
});
}
public static void main(String[] args) {
LoginFrame loginFrame = new LoginFrame();
loginFrame.setVisible(true);
}
}
计算器代码:
package jisuanji;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CalculatorFrame extends JFrame {
private JTextField num1Field;
private JTextField num2Field;
private JButton addButton;
private JButton subtractButton;
private JButton multiplyButton;
private JButton divideButton;
private JLabel resultLabel;
public CalculatorFrame() {
setTitle("计算器");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 2));
JLabel num1Label = new JLabel("数字1:");
num1Field = new JTextField(10);
JLabel num2Label = new JLabel("数字2:");
num2Field = new JTextField(10);
addButton = new JButton("相加");
subtractButton = new JButton("相减");
multiplyButton = new JButton("相乘");
divideButton = new JButton("相除");
resultLabel = new JLabel();
panel.add(num1Label);
panel.add(num1Field);
panel.add(num2Label);
panel.add(num2Field);
panel.add(addButton);
panel.add(subtractButton);
panel.add(multiplyButton);
panel.add(divideButton);
add(panel, BorderLayout.CENTER);
add(resultLabel, BorderLayout.SOUTH);
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = num1 + num2;
resultLabel.setText("结果:" + result);
}
});
subtractButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = num1 - num2;
resultLabel.setText("结果:" + result);
}
});
multiplyButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = num1 * num2;
resultLabel.setText("结果:" + result);
}
});
divideButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
if (num2 != 0) {
double result = num1 / num2;
resultLabel.setText("结果:" + result);
} else {
resultLabel.setText("除数不能为0!");
}
}
});
}
public static void main(String[] args) {
CalculatorFrame calculatorFrame = new CalculatorFrame();
calculatorFrame.setVisible(true);
}
}
3.登录界面及计算器测试结果
登录界面:

登录失败界面:

登录成功后直接跳转到计算器界面:

4.登录界面及计算器流程图


浙公网安备 33010602011771号