用Java实现成绩录入界面,要求如下: (1)界面包含两个文本行、一个按钮、一个列表框组件。两个文本行分别输入学生学号和分数,点击录入按钮,学号及分数信息在列表框中显示。 (2)输入成绩范围为0-100,如果成绩不在该范围内,则弹出对话框提示分数必须在0-100之间。要求使用异常处理机制来实现该功能。
时间: 2023-02-27 21:28:18 浏览: 337
下面是一个简单的 Java 代码实现成绩录入界面的示例:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RecordScore extends JFrame implements ActionListener {
private JTextField studentIdField, scoreField;
private JButton enterButton;
private JList scoreList;
private DefaultListModel listModel;
public RecordScore() {
super("成绩录入");
setLayout(new FlowLayout());
setSize(250, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel studentIdLabel = new JLabel("学生学号");
studentIdField = new JTextField(10);
add(studentIdLabel);
add(studentIdField);
JLabel scoreLabel = new JLabel("分数");
scoreField = new JTextField(10);
add(scoreLabel);
add(scoreField);
enterButton = new JButton("录入");
enterButton.addActionListener(this);
add(enterButton);
listModel = new DefaultListModel();
scoreList = new JList(listModel);
JScrollPane listScrollPane = new JScrollPane(scoreList);
listScrollPane.setPreferredSize(new Dimension(200, 150));
add(listScrollPane);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
int score = Integer.parseInt(scoreField.getText());
if (score < 0 || score > 100) {
throw new ScoreOutOfRangeException("分数必须在0-100之间");
}
listModel.addElement(studentIdField.getText() + " " + score);
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "分数必须是数字", "错误", JOptionPane.ERROR_MESSAGE);
} catch (ScoreOutOfRangeException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
private class ScoreOutOfRangeException extends Exception {
public ScoreOutOfRangeException(String message) {
super(message);
}
}
public static void main(String[] args) {
new RecordScore();
}
}
```
该代码使用了 Java 中的异常处理机制,如果输入的分数不是数字,则会抛出 NumberFormatException 异常,如果分数不在0-100之间,则
阅读全文