面板上包含学生的姓名,出生日期,是用文本行显示。性别是用单选按钮表示,所在省份是用组合框表示,是否团员用复合框表示。将面板中的内容放到表格中
时间: 2024-02-29 15:53:33 浏览: 72
好的,我可以帮你解决这个问题。
首先,你需要创建一个包含表格的面板。然后,你可以使用文本行、单选按钮、组合框和复合框等组件来填充表格。
以下是一个示例代码,展示了如何将学生信息添加到表格中:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.util.Vector;
public class StudentInfoPanel extends JPanel {
private JTextField nameField;
private JTextField birthField;
private JRadioButton maleRadio;
private JRadioButton femaleRadio;
private JComboBox<String> provinceBox;
private JCheckBox leagueBox;
private JButton addButton;
private JTable table;
public StudentInfoPanel() {
setLayout(new BorderLayout());
// 创建表格模型
DefaultTableModel model = new DefaultTableModel();
model.addColumn("姓名");
model.addColumn("出生日期");
model.addColumn("性别");
model.addColumn("所在省份");
model.addColumn("是否团员");
// 创建表格
table = new JTable(model);
// 创建表格面板
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
// 创建表单面板
JPanel formPanel = new JPanel(new GridLayout(0, 2));
// 姓名
formPanel.add(new JLabel("姓名:"));
nameField = new JTextField();
formPanel.add(nameField);
// 出生日期
formPanel.add(new JLabel("出生日期:"));
birthField = new JTextField();
formPanel.add(birthField);
// 性别
formPanel.add(new JLabel("性别:"));
ButtonGroup genderGroup = new ButtonGroup();
maleRadio = new JRadioButton("男");
femaleRadio = new JRadioButton("女");
genderGroup.add(maleRadio);
genderGroup.add(femaleRadio);
JPanel genderPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
genderPanel.add(maleRadio);
genderPanel.add(femaleRadio);
formPanel.add(genderPanel);
// 省份
formPanel.add(new JLabel("所在省份:"));
String[] provinces = {"北京", "上海", "广东", "江苏", "浙江"};
provinceBox = new JComboBox<>(provinces);
formPanel.add(provinceBox);
// 是否团员
formPanel.add(new JLabel("是否团员:"));
leagueBox = new JCheckBox("是");
formPanel.add(leagueBox);
// 添加按钮
addButton = new JButton("添加");
addButton.addActionListener(e -> addStudent());
formPanel.add(addButton);
add(formPanel, BorderLayout.SOUTH);
}
// 添加学生信息到表格中
private void addStudent() {
String name = nameField.getText();
String birth = birthField.getText();
String gender = maleRadio.isSelected() ? "男" : "女";
String province = (String) provinceBox.getSelectedItem();
boolean isLeague = leagueBox.isSelected();
Vector<String> row = new Vector<>();
row.add(name);
row.add(birth);
row.add(gender);
row.add(province);
row.add(isLeague ? "是" : "否");
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.addRow(row);
nameField.setText("");
birthField.setText("");
maleRadio.setSelected(true);
provinceBox.setSelectedIndex(0);
leagueBox.setSelected(false);
}
}
```
在这个例子中,我们创建了一个名为`StudentInfoPanel`的面板,包含了一个表格和一个表单。表单中包含了用于输入学生信息的组件,包括姓名、出生日期、性别、所在省份和是否团员。当用户点击添加按钮时,我们将学生信息添加到表格中。
你可以将这个面板添加到你的应用程序中,以实现将学生信息从面板中添加到表格中的功能。
阅读全文