用java代码实现成绩录入界面,要求如下: (1)界面包含两个文本行、一个按钮、一个列表框组件。两个文本行分别输入学生学号和分数,点击录入按钮,学号及分数信息在列表框中显示。 (2)输入成绩范围为0-100,如果成绩不在该范围内,则弹出对话框提示分数必须在0-100之间。要求使用异常处理机制来实现该功能。
时间: 2024-02-29 17:53:15 浏览: 224
好的,以下是用Java代码实现成绩录入界面的示例:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ScoreInputFrame extends JFrame {
private JTextField idField, scoreField;
private JList<String> scoreList;
private DefaultListModel<String> listModel;
public ScoreInputFrame() {
super("成绩录入");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建组件
idField = new JTextField(10);
scoreField = new JTextField(10);
JButton addButton = new JButton("录入");
addButton.addActionListener(new AddButtonListener());
listModel = new DefaultListModel<String>();
scoreList = new JList<String>(listModel);
// 添加组件到容器
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(new JLabel("学号:"));
contentPane.add(idField);
contentPane.add(new JLabel("分数:"));
contentPane.add(scoreField);
contentPane.add(addButton);
contentPane.add(new JScrollPane(scoreList));
// 设置窗口大小和位置
setSize(300, 200);
setLocationRelativeTo(null);
}
private class AddButtonListener implements ActionListener {
public void actionPerformed(ActionEvent evt) {
String id = idField.getText().trim();
String scoreStr = scoreField.getText().trim();
int score;
try {
score = Integer.parseInt(scoreStr);
if (score < 0 || score > 100) {
throw new IllegalArgumentException();
}
listModel.addElement(id + ":" + score);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(ScoreInputFrame.this, "分数必须是一个整数!");
} catch (IllegalArgumentException e) {
JOptionPane.showMessageDialog(ScoreInputFrame.this, "分数必须在0-100之间!");
}
idField.setText("");
scoreField.setText("");
idField.requestFocus();
}
}
public static void main(String[] args) {
ScoreInputFrame frame = new ScoreInputFrame();
frame.setVisible(true);
}
}
```
这个程序中,我们创建了一个 `ScoreInputFrame` 类,继承自 `JFrame`,表示成绩录入的窗口界面。在窗口中,我们使用了以下组件:
- `JTextField`:用于输入学号和分数;
- `JButton`:用于录入学号和分数;
- `JList`:用于显示录入的学号和分数。
在 `AddButtonListener` 类中,我们实现了录入按钮的事件监听器。当用户点击按钮时,我们从两个文本框中读取学号和分数,然后进行以下操作:
- 如果分数不能转换为整数,弹出对话框提示用户分数必须是一个整数;
- 如果分数不在0-100之间,抛出 `IllegalArgumentException` 异常,这时程序会自动跳转到 `catch` 代码块,弹出对话框提示用户分数必须在0-100之间;
- 否则,将学号和分数拼接成一个字符串,并添加到 `JList` 组件中。
当录入完成后,我们将两个文本框中的内容清空,并将光标移到学号文本框中,方便用户继续录入下一条成绩。
阅读全文