39、学生成绩应用:二维数组与单选按钮的使用

学生成绩应用:二维数组与单选按钮的使用

在开发应用程序时,我们常常会遇到需要处理复杂数据结构和用户交互的情况。本文将介绍如何使用二维数组和单选按钮来实现一个学生成绩应用程序,该程序可以帮助教师管理学生的成绩,并以数字或字母形式显示成绩。

1. 应用需求概述

教师需要为一个有 10 名学生的班级进行三次测试,测试成绩为 0 到 100 之间的整数。教师希望开发一个应用程序来跟踪每个学生的平均成绩和班级平均成绩,并且可以选择以数字或字母形式查看成绩。字母成绩的计算规则如下:
| 字母等级 | 分数范围 |
| ---- | ---- |
| A | 90 - 100 |
| B | 80 - 89 |
| C | 70 - 79 |
| D | 60 - 69 |
| F | 低于 60 |

应用程序应允许用户输入每个学生的三次测试成绩,计算每个学生的平均成绩和班级平均成绩,并默认显示数字成绩。

2. 测试已完成的应用程序

在开始开发之前,我们先测试一下已完成的应用程序,了解其功能和操作流程。具体步骤如下:
1. 打开已完成的应用程序 :打开目录 C:\Examples\ch18\CompletedApp\StudentGrades ,双击 StudentGrades.sln 在 Visual Basic IDE 中打开应用程序。
2. 运行应用程序 :选择 Debug > Start Debugg

在Java Swing中创建一个显示二维数组内容并支持单选的功能,你可以使用JTable、JRadioButton等组件来实现。以下是一个简单的步骤概述: 1. 导入必要的库: ```java import javax.swing.*; import java.awt.*; import javax.swing.table.DefaultTableModel; import javax.swing.border.LineBorder; import java.util.Vector; ``` 2. 定义一个二维数组模型(DefaultTableModel): ```java String[] columnNames = {"行", "列"}; Object[][] data = {{"A", 1}, {"B", 2}, {"C", 3}}; // 这里替换为你实际的二维数组 DefaultTableModel model = new DefaultTableModel(data, columnNames); ``` 3. 创建JTable和JScrollPane: ```java JTable table = new JTable(model); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 设置单选模式 JScrollPane scrollPane = new JScrollPane(table); scrollPane.setBorder(new LineBorder(Color.BLACK)); // 边框样式 ``` 4. 将表放入窗口布局: ```java JFrame frame = new JFrame("二维数组展示"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(scrollPane, BorderLayout.CENTER); frame.setSize(600, 400); frame.setVisible(true); ``` 5. 如果需要添加单选按钮来对应每一行的操作,可以遍历数据并在每个单元格旁边添加按钮。例如,使用`TableCellRenderer`和`JButton`: ```java class CellRenderer extends JLabel implements TableCellRenderer { private JButton radioButton; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { radioButton = new JButton(); // 创建一个按钮 radioButton.addActionListener(e -> handleButtonClick(row)); radioButton.setBorder(UIManager.getBorder("Button.border")); setOpaque(isSelected); return this; } private void handleButtonClick(int row) { // 为单选按钮设置事件处理逻辑,比如改变选中项或执行其他操作 table.changeSelection(row, 0, false, true); } } // 在初始化表格时应用这个自定义渲染器 table.getColumnModel().getColumn(0).setCellRenderer(new CellRenderer()); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值