JAVA 1. 设计Manager类、GUI类及事件处理 (1)设计一个Manager类并编写代码, Manager类的属性有姓名,工号,基本工资,小时工资(元/小时)。自定义方法:至少包括计算月工资的方法:calSalary()。 (2)编写一个GUI类,输入manager的姓名、工号,基本工资,月工作时间(小时),创建对象,调用calSalary()方法计算出该manager的月工资,并显示在用户界面上。
时间: 2024-02-22 17:56:43 浏览: 183
hotel-manager:面向对象设计类的酒店经理 GUI
好的,我来回答你的问题。
首先,我需要声明一下,我的回答仅供参考,具体实现方式可能会因为实际情况而有所不同。
对于这个问题,我们可以按照以下步骤来实现:
1. 设计Manager类并编写代码
Manager类的属性有姓名、工号、基本工资、小时工资。我们可以使用以下代码来定义Manager类:
```
public class Manager {
private String name;
private String id;
private double basicSalary;
private double hourSalary;
public Manager(String name, String id, double basicSalary, double hourSalary) {
this.name = name;
this.id = id;
this.basicSalary = basicSalary;
this.hourSalary = hourSalary;
}
public double calSalary(double workHours) {
double salary = basicSalary + workHours * hourSalary;
return salary;
}
}
```
这个类中,我们定义了4个属性:name、id、basicSalary、hourSalary,分别表示姓名、工号、基本工资、小时工资。我们还定义了一个构造方法,用于创建Manager对象,以及一个计算月工资的方法calSalary()。
2. 编写GUI类及事件处理
接下来,我们需要编写一个GUI类来输入manager的信息,并计算月工资。我们可以使用Swing库来实现用户界面。
以下是一个简单的GUI类的代码:
```
import javax.swing.*;
public class ManagerGUI extends JFrame {
private JLabel nameLabel;
private JLabel idLabel;
private JLabel basicSalaryLabel;
private JLabel workHoursLabel;
private JTextField nameField;
private JTextField idField;
private JTextField basicSalaryField;
private JTextField workHoursField;
private JButton calculateButton;
private JLabel resultLabel;
public ManagerGUI() {
setTitle("Manager Salary Calculator");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
nameLabel = new JLabel("Name:");
nameLabel.setBounds(20, 20, 80, 20);
add(nameLabel);
nameField = new JTextField();
nameField.setBounds(100, 20, 150, 20);
add(nameField);
idLabel = new JLabel("ID:");
idLabel.setBounds(20, 50, 80, 20);
add(idLabel);
idField = new JTextField();
idField.setBounds(100, 50, 150, 20);
add(idField);
basicSalaryLabel = new JLabel("Basic Salary:");
basicSalaryLabel.setBounds(20, 80, 80, 20);
add(basicSalaryLabel);
basicSalaryField = new JTextField();
basicSalaryField.setBounds(100, 80, 150, 20);
add(basicSalaryField);
workHoursLabel = new JLabel("Work Hours:");
workHoursLabel.setBounds(20, 110, 80, 20);
add(workHoursLabel);
workHoursField = new JTextField();
workHoursField.setBounds(100, 110, 150, 20);
add(workHoursField);
calculateButton = new JButton("Calculate");
calculateButton.setBounds(100, 140, 80, 20);
add(calculateButton);
resultLabel = new JLabel();
resultLabel.setBounds(20, 170, 250, 20);
add(resultLabel);
calculateButton.addActionListener(e -> {
String name = nameField.getText();
String id = idField.getText();
double basicSalary = Double.parseDouble(basicSalaryField.getText());
double workHours = Double.parseDouble(workHoursField.getText());
Manager manager = new Manager(name, id, basicSalary, 100);
double salary = manager.calSalary(workHours);
resultLabel.setText("Monthly salary: " + salary);
});
}
public static void main(String[] args) {
ManagerGUI gui = new ManagerGUI();
gui.setVisible(true);
}
}
```
这个GUI类中,我们定义了一些Swing组件,包括JLabel、JTextField、JButton、JFrame等。在构造方法中,我们设置了GUI的一些属性,如标题、大小、位置和关闭方式等。然后,我们创建了一些组件,并设置它们的位置和大小。
最后,我们为Calculate按钮添加了一个事件监听器,当用户点击该按钮时,会取出用户输入的信息,创建一个Manager对象,并调用其calSalary()方法计算月工资。然后,我们将结果显示在GUI界面上。
总之,以上就是一个简单的Manager工资计算器的实现方法。需要注意的是,这个实现只是一个示例,具体的实现方式可能会因为实际情况而有所不同。
阅读全文