用JAVA实现实现成绩录入界面,要求如下:(1)界面包含两个文本行、一个按钮、一个列表框组件。两个文本行分别输入学生名称和分数,点击录入按钮,学生名称及分数信息在列表框中显示。(2)如果学生名称重复会提示录入失败
时间: 2024-03-02 14:52:23 浏览: 73
任务一实施-软件开发java项目
好的,我会根据您的要求来帮您实现用JAVA实现成绩录入界面。以下是实现的步骤:
1. 首先,我们需要先创建一个Java项目,并在项目中创建一个窗体(JFrame)。
2. 在窗体中添加两个文本框(JTextField)和一个按钮(JButton),还要添加一个列表框(JList)。
3. 当用户点击录入按钮时,我们需要获取学生名称和分数的输入值,并将它们存储在一个HashMap中,以便我们可以轻松地检查是否有重复的学生名称。
4. 如果学生名称已经存在于HashMap中,我们需要显示一个提示框,提示录入失败。
5. 如果学生名称不存在于HashMap中,我们需要将学生名称和分数添加到HashMap中,并将它们显示在列表框中。
以下是示例代码实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
public class ScoreEntry extends JFrame implements ActionListener {
private JLabel nameLabel, scoreLabel;
private JTextField nameField, scoreField;
private JButton enterButton;
private JList<String> studentList;
private DefaultListModel<String> listModel;
private HashMap<String, Integer> studentScores;
public ScoreEntry() {
// 设置窗体的属性
setTitle("成绩录入");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// 创建组件
nameLabel = new JLabel("学生名称:");
scoreLabel = new JLabel("学生分数:");
nameField = new JTextField(10);
scoreField = new JTextField(10);
enterButton = new JButton("录入");
studentList = new JList<>();
listModel = new DefaultListModel<>();
studentScores = new HashMap<>();
// 设置列表框的模型
studentList.setModel(listModel);
// 添加组件到窗体中
JPanel panel1 = new JPanel(new FlowLayout());
panel1.add(nameLabel);
panel1.add(nameField);
JPanel panel2 = new JPanel(new FlowLayout());
panel2.add(scoreLabel);
panel2.add(scoreField);
JPanel panel3 = new JPanel(new FlowLayout());
panel3.add(enterButton);
JPanel panel4 = new JPanel(new BorderLayout());
panel4.add(new JScrollPane(studentList), BorderLayout.CENTER);
getContentPane().add(panel1, BorderLayout.NORTH);
getContentPane().add(panel2, BorderLayout.CENTER);
getContentPane().add(panel3, BorderLayout.SOUTH);
getContentPane().add(panel4, BorderLayout.EAST);
// 添加按钮的事件监听器
enterButton.addActionListener(this);
// 显示窗体
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == enterButton) {
// 获取学生名称和分数的输入值
String name = nameField.getText();
int score = Integer.parseInt(scoreField.getText());
// 检查学生名称是否已经存在
if (studentScores.containsKey(name)) {
JOptionPane.showMessageDialog(this, "录入失败,学生名称已经存在!");
} else {
// 将学生名称和分数添加到HashMap中
studentScores.put(name, score);
// 将学生名称和分数添加到列表框中
listModel.addElement(name + ":" + score);
}
// 清空文本框
nameField.setText("");
scoreField.setText("");
}
}
public static void main(String[] args) {
new ScoreEntry();
}
}
```
这样,就实现了一个简单的成绩录入界面,可以录入学生的名称和分数,并且检查是否有重复的学生名称。
阅读全文