用java实现成绩录入界面,要求如下: (1)界面包含两个文本行、一个按钮、一个列表框组件。两个文本行分别输入学生学号和分数,点击录入按钮,学号及分数信息在列表框中显示。 (2)输入成绩范围为0-100,如果成绩不在该范围内,则弹出对话框提示分数必须在0-100之间。要求使用异常处理机制来实现该功能。
时间: 2023-02-28 09:27:47 浏览: 131
下面是一个Java代码的示例,实现了题目中的要求:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GradeInput extends JFrame implements ActionListener {
private JTextField studentIDField;
private JTextField scoreField;
private JButton enterButton;
private JList<String> gradeList;
private DefaultListModel<String> listModel;
public GradeInput() {
// 创建文本行,按钮和列表框组件
studentIDField = new JTextField(10);
scoreField = new JTextField(10);
enterButton = new JButton("录入");
listModel = new DefaultListModel<>();
gradeList = new JList<>(listModel);
// 添加按钮的监听器
enterButton.addActionListener(this);
// 设置布局
setLayout(new FlowLayout());
add(new JLabel("学号:"));
add(studentIDField);
add(new JLabel("分数:"));
add(scoreField);
add(enterButton);
add(new JScrollPane(gradeList));
// 设置窗口属性
setTitle("成绩录入");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String studentID = studentIDField.getText();
String scoreStr = scoreField.getText();
try {
int score = Integer.parseInt(scoreStr);
if (score < 0 || score > 100) {
throw new IllegalArgumentException("分数必须在0-100之间");
}
listModel.addElement(studentID + ": " + score);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(this, "请输入整数分数");
} catch (IllegalArgumentException iae) {
JOptionPane.showMessageDialog(this, iae.getMessage());
}
}
public static void main(String[] args) {
new GradeInput();
}
}
```
在这个代码中,我们使用了`JTextField`和`JButton`组件分别实现了两个文本行和录入按钮,并
阅读全文