以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据你提供的需求,下面是一个简单的Java Swing程序示例,用于创建一个个人信息编辑窗口。这个示例程序将满足你的基本需求,但请注意,这只是一个基础的实现,可能需要根据你的具体需求进行调整。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PersonalInfoEditor extends JFrame {
private JTextField nameField;
private JRadioButton maleRadioButton;
private JRadioButton femaleRadioButton;
private JComboBox majorComboBox;
private JComboBox yearComboBox;
private JList courseList;
private JButton confirmButton;
private JTextArea resultTextArea;
public PersonalInfoEditor() {
super("个人信息编辑窗口");
initializeUI();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 600);
setLocationRelativeTo(null);
}
private void initializeUI() {
setLayout(new FlowLayout());
// Name input
JLabel nameLabel = new JLabel("姓名:");
nameField = new JTextField(20);
add(nameLabel);
add(nameField);
// Gender selection
JLabel genderLabel = new JLabel("性别:");
maleRadioButton = new JRadioButton("男");
femaleRadioButton = new JRadioButton("女");
ButtonGroup genderGroup = new ButtonGroup();
genderGroup.add(maleRadioButton);
genderGroup.add(femaleRadioButton);
add(genderLabel);
add(maleRadioButton);
add(femaleRadioButton);
// Major selection
JLabel majorLabel = new JLabel("专业:");
String[] majors = {"软件工程", "计算机科学与技术", "会计学", "财政学"};
majorComboBox = new JComboBox<>(majors);
add(majorLabel);
add(majorComboBox);
// Year selection
JLabel yearLabel = new JLabel("入学年度:");
String[] years = new String[2030 - 2016 + 1];
for (int i = 0; i < years.length; i++) {
years[i] = String.valueOf(2016 + i);
}
yearComboBox = new JComboBox<>(years);
add(yearLabel);
add(yearComboBox);
// Course selection
JLabel courseLabel = new JLabel("选修课程:");
String[] courses = {"计算机导论", "数据结构", "高等数学", "大学英语", "会计学基础", "财政金融"};
courseList = new JList<>(courses);
add(courseLabel);
add(new JScrollPane(courseList));
// Confirm button
confirmButton = new JButton("确定");
confirmButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
outputInfo();
}
});
add(confirmButton);
// Result text area
resultTextArea = new JTextArea(10, 40);
resultTextArea.setEditable(false);
add(new JScrollPane(resultTextArea));
}
private void outputInfo() {
String gender = maleRadioButton.isSelected() ? "男" : "女";
String major = (String) majorComboBox.getSelectedItem();
String year = (String) yearComboBox.getSelectedItem();
String courses = String.join(", ", courseList.getSelectedValuesList());
resultTextArea.setText("姓名: " + nameField.getText() + "\n" +
"性别: " + gender + "\n" +
"专业: " + major + "\n" +
"入学年度: " + year + "\n" +
"选修课程: " + courses);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new PersonalInfoEditor().setVisible(true);
}
});
}
}
这段代码创建了一个名为PersonalInfoEditor的类,它继承自JFrame,代表一个窗口。窗口中包含了姓名输入框、性别单选按钮、专业和入学年度的下拉列表、选修课程的列表框以及一个确定按钮。当点击确定按钮时,会调用outputInfo方法,将输入的信息输出到文本区域。
至于参考资料,你可以查看Java Swing的官方教程,它提供了详细的组件使用说明和示例代码:
- Java Swing教程: Oracle Java Swing Tutorial
请根据你的实际开发环境和需求调整上述代码。如果你需要进一步的帮助或有其他问题,随时可以提问。
