用java编写:1.设计 Manager 类、 GUI 类及事件处理 (1)设计一个 Manager 类并编写代码, anager 类的属性有姓名,工号,基本工资,小时工资(元/小时)。自定义方法:至少包括计算月工资的方法: calSalary ()。 (2)编写一个 GUI 类,输入 manager 的姓名、工号,基本工资,月工作时间(小时),创建对象,调用 calSalary ()方法计算出该 manager 的月工资,并显示在用户界面上。
时间: 2024-02-18 11:03:32 浏览: 37
以下是Java代码实现:
Manager类:
```java
public class Manager {
private String name; // 姓名
private String id; // 工号
private double baseSalary; // 基本工资
private double hourSalary; // 小时工资
public Manager(String name, String id, double baseSalary, double hourSalary) {
this.name = name;
this.id = id;
this.baseSalary = baseSalary;
this.hourSalary = hourSalary;
}
public double calSalary(int workTime) {
return baseSalary + hourSalary * workTime; // 计算月工资
}
}
```
GUI类:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUI extends JFrame implements ActionListener {
private JTextField nameField; // 姓名输入框
private JTextField idField; // 工号输入框
private JTextField baseSalaryField; // 基本工资输入框
private JTextField workTimeField; // 工作时长输入框
private JButton calButton; // 计算月工资按钮
private JLabel resultLabel; // 月工资结果标签
public GUI() {
setTitle("Manager Salary Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建输入框、按钮和标签
nameField = new JTextField(10);
idField = new JTextField(10);
baseSalaryField = new JTextField(10);
workTimeField = new JTextField(10);
calButton = new JButton("计算月工资");
calButton.addActionListener(this);
resultLabel = new JLabel("月工资:");
// 创建面板并添加组件
JPanel panel = new JPanel(new GridLayout(5, 2));
panel.add(new JLabel("姓名:"));
panel.add(nameField);
panel.add(new JLabel("工号:"));
panel.add(idField);
panel.add(new JLabel("基本工资:"));
panel.add(baseSalaryField);
panel.add(new JLabel("月工作时间(小时):"));
panel.add(workTimeField);
panel.add(calButton);
panel.add(resultLabel);
// 添加面板
add(panel);
pack();
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// 获取输入框的值
String name = nameField.getText();
String id = idField.getText();
double baseSalary = Double.parseDouble(baseSalaryField.getText());
int workTime = Integer.parseInt(workTimeField.getText());
// 创建 Manager 对象并计算月工资
Manager manager = new Manager(name, id, baseSalary, 50); // 假设小时工资为50元
double salary = manager.calSalary(workTime);
// 显示月工资结果
resultLabel.setText("月工资:" + salary + "元");
}
public static void main(String[] args) {
new GUI();
}
}
```
GUI类继承自JFrame类,实现了ActionListener接口。当点击“计算月工资”按钮时,会调用actionPerformed方法,获取输入框的值并计算月工资,最后将结果显示在resultLabel标签上。