完成个人信息收集的窗口的界面。要求使用到所有学习过的组件。单选按钮的实现自己完成。
package GUI;
import javax.swing.;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class PersonalInfoUI {
public PersonalInfoUI() {
JFrame jf = new JFrame("Personal Info");
jf.setSize(250, 520);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
jf.setResizable(false);
JPanel jp = new JPanel(new FlowLayout());
//姓名
JLabel jLabel_Name = new JLabel();
jLabel_Name.setText("Name: ");
jLabel_Name.setFont(new Font(null, Font.PLAIN, 20));
//性别
JLabel jLabel_Gender = new JLabel();
jLabel_Gender.setText("Gender: ");
jLabel_Gender.setFont(new Font(null, Font.PLAIN, 18));
//爱好
JLabel jLabel_Hobby = new JLabel();
jLabel_Hobby.setText("Hobby: ");
jLabel_Hobby.setFont(new Font(null, Font.PLAIN, 18));
//学历
JLabel jLabel_Education = new JLabel();
jLabel_Education.setText("Education: ");
jLabel_Education.setFont(new Font(null, Font.PLAIN, 18));
//简介
JLabel jLabel_Introduction = new JLabel();
jLabel_Introduction.setText("Introduction: ");
jLabel_Introduction.setFont(new Font(null, Font.PLAIN, 18));
//姓名输入
JTextField jTextField_Name = new JTextField(10);
jTextField_Name.setFont(new Font(null, Font.PLAIN, 18));
//爱好输入
JTextField jTextField_Hobby = new JTextField(15);
jTextField_Hobby.setFont(new Font(null, Font.PLAIN, 18));
jTextField_Hobby.setEnabled(false); //设置默认不可编辑
//性别 单选按钮
JRadioButton jRadioButton_Gender_Male = new JRadioButton("Male");
JRadioButton jRadioButton_Gender_Female = new JRadioButton("Female");
//性别 按钮组, 将俩按钮加入
ButtonGroup buttonGroup_Gender = new ButtonGroup();
buttonGroup_Gender.add(jRadioButton_Gender_Male);
buttonGroup_Gender.add(jRadioButton_Gender_Female);
//性别 设置男性为选中
jRadioButton_Gender_Male.setSelected(true);
//爱好 设置多个爱好复选框
JCheckBox jCheckBox_Hobby_Music = new JCheckBox("Music");
JCheckBox jCheckBox_Hobby_Sports = new JCheckBox("Sports");
JCheckBox jCheckBox_Hobby_Movies = new JCheckBox("Movies");
JCheckBox jCheckBox_Hobby_Reading = new JCheckBox("Reading");
JCheckBox jCheckBox_Hobby_Other = new JCheckBox("Other");
//爱好 当Other被选中时允许编辑框编辑
jCheckBox_Hobby_Other.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent changeEvent) {
JCheckBox checkBox = (JCheckBox)changeEvent.getSource();
if(checkBox.isSelected()){
jTextField_Hobby.setEnabled(true);
}else{
jTextField_Hobby.setEnabled(false);
}
}
});
//学历 创建下拉列表条目
String[] list_Education = new String[]{"Primary school","Junior high school","Senior high school","Undergraduate","Junior college"};
//学历 创建下拉列表
final JComboBox<String> jComboBox_Education = new JComboBox<String>(list_Education);
//简介 文本区域
final JTextArea jTextArea_Introduction = new JTextArea(9,15);
jTextArea_Introduction.setLineWrap(true);
jTextArea_Introduction.setFont(new Font(null, Font.PLAIN, 18));
//简介 为文本区域添加滚动条, 并设置为永不可见
JScrollPane jsp = new JScrollPane(jTextArea_Introduction);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
//确定按钮
JButton post = new JButton("P O S T !");
post.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("Name is " + jTextField_Name.getText());
System.out.println("Gender is " + (jRadioButton_Gender_Male.isSelected() == true ? "Male" : "Female"));
System.out.println("Hobbies are " + (jCheckBox_Hobby_Music.isSelected() == true ? "Music " : "") +
(jCheckBox_Hobby_Sports.isSelected() == true ? "Sports " : "") +
(jCheckBox_Hobby_Movies.isSelected() == true ? "Movies " : "") +
(jCheckBox_Hobby_Reading.isSelected() == true ? "Reading " : "") +
(jCheckBox_Hobby_Other.isSelected() == true ? jTextField_Hobby.getText() : ""));
System.out.println("Education is " + jComboBox_Education.getSelectedItem());
System.out.println("Introduction is " + jTextArea_Introduction.getText());
}
});
//依次将控件加入Panel
jp.add(jLabel_Name);
jp.add(jTextField_Name);
jp.add(jLabel_Gender);
jp.add(jRadioButton_Gender_Male);
jp.add(jRadioButton_Gender_Female);
jp.add(jLabel_Hobby);
jp.add(jCheckBox_Hobby_Music);
jp.add(jCheckBox_Hobby_Sports);
jp.add(jCheckBox_Hobby_Movies);
jp.add(jCheckBox_Hobby_Reading);
jp.add(jCheckBox_Hobby_Other);
jp.add(jTextField_Hobby);
jp.add(jLabel_Education);
jp.add(jComboBox_Education);
jp.add(jLabel_Introduction);
jp.add(jTextArea_Introduction);
jp.add(post);
jf.setContentPane(jp);
jf.setVisible(true);
}
public static void main (String[] args){
new PersonalInfoUI();
}
`}
`