1.题目要求:
制作个人简历,要求有文本域输入信息,单选按钮和复选按钮进行选择,点击提交按钮后在文本区显示所输入的信息和选择的信息,点击清空后文本区内容为空。
2.思路:
(1)创建简历中需要的各种组件:
JLabel创建标签对象、JTextField创建文本域对象,JPanel创建面板对象,将各组件放入对应面板当中,Container创建容器对象,将各组织好的面板放入容器当中。
(2)定义好各部分后,提交和清空需要定义事件监听,通过事件相应方法来实现。各选择类的项需通过选项监听器中的方法来实现。
3.实现效果:
4.代码实现:
public class MyJianLi extends JFrame
{
//创建对象
JFileChooser fc=new JFileChooser();
Container ct;
JPanel p1; //个人简历
JPanel p2; //姓名、性别
JTextField tf1;
String name,sex;
JRadioButton jrb1,jrb2;
JPanel p3; //生日、年龄
String year,month,day;
int y=0,m=1;
int nl;
JComboBox jcb1,jcb2,jcb3;
JTextField tf2;
JPanel p4; //住址
String address;
JTextField tf3;
JPanel p5; //政治面貌、所学课程
String politics,objects;
JComboBox jcb4;
JList list1;
JPanel p6; //专业
String specialty;
JTextField tf4;
JPanel p7; //兴趣爱好
int a[]={0,0,0,0,0,0,0};
JCheckBox jc1,jc2,jc3,jc4,jc5,jc6,jc7;
String interest="";
JPanel p8; //毕业院校
JTextField tf5;
String graduate;
JPanel p9; //专业技能
String filedname;
JTextField tf6;
JScrollPane p10; //文本域面板
JTextArea ta;
JPanel p11; //提交、清空
public MyJianLi()
{
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
JPanel p5=new JPanel();
JPanel p6=new JPanel();
JPanel p7=new JPanel();
JPanel p8=new JPanel();
JPanel p9=new JPanel();
JPanel p10=new JPanel();
JPanel p11=new JPanel();
this.setTitle("个人简历");
ct=this.getContentPane();
ct.setLayout(new BoxLayout(ct,BoxLayout.Y_AXIS));
buildJPanel1( p1);
ct.add(p1);
buildJPanel2( p2);
ct.add(p2);
buildJPanel3( p3);
ct.add(p3);
buildJPanel4( p4);
ct.add(p4);
buildJPanel5( p5);
ct.add(p5);
buildJPanel6( p6);
ct.add(p6);
buildJPanel7( p7);
ct.add(p7);
buildJPanel8( p8);
ct.add(p8);
buildJPanel9( p9);
ct.add(p9);
buildJPanel10( p10);
ct.add(p10);
buildJPanel11( p11);
ct.add(p11);
this.setVisible(true);
this.setSize(600,850);
this.setLocation(500, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//具体实现部分:
//****************个人简历**********************************//
private void buildJPanel1(JPanel p1)
{
p1.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l1 =new JLabel("个人简历");
l1.setHorizontalAlignment(JLabel.CENTER);
l1.setFont(new Font("个人简历",1,40));
l1.setEnabled(false);
p1.add(l1);
}
//****************姓名、性别********************************//
private void buildJPanel2(JPanel p2)
{
p2.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l2 =new JLabel("姓名");
JLabel l3 =new JLabel("性别");
p2.add(l2);
tf1=new JTextField(25);
p2.add(tf1);
tf1.addActionListener(new TJActionListener());
p2.add(l3);
jrb1=new JRadioButton("男");
jrb1.setSelected(true);
jrb1.addItemListener(new JRB());
jrb2=new JRadioButton("女");
jrb2.addItemListener(new JRB());
ButtonGroup bG=new ButtonGroup();
bG.add(jrb1);
bG.add(jrb2);
p2.add(jrb1);
p2.add(jrb2);
p2.setSize(450,100);
p2.setEnabled(false);
}
//*****************生日、年龄***************************//
private void buildJPanel3(JPanel p3)
{
p3.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l4 =new JLabel("生日:");
jcb1=new JComboBox();
for(int i=1949;i<2012;i++)
jcb1.addItem(String.valueOf(i));
JLabel l5 =new JLabel("年");
jcb2=new JComboBox();
for(int i=1;i<13;i++)
jcb2.addItem(String.valueOf(i));
JLabel l6 =new JLabel("月");
jcb3=new JComboBox();
for(int i=1;i<32;i++)
jcb3.addItem(String.valueOf(i));
JLabel l7 =new JLabel("日");
jcb1.addItemListener(new JBC1());
jcb2.addItemListener(new JBC2());
jcb3.addItemListener(new JBC3());
JLabel l8 =new JLabel("年龄:");
tf2 =new JTextField(12);
tf2.addActionListener(new TJActionListener());
tf2.setEditable(true);
p3.add(l4);
p3.add(jcb1);
p3.add(l5);
p3.add(jcb2);
p3.add(l6);
p3.add(jcb3);
p3.add(l7);
p3.add(l8);
p3.add(tf2);
}
//*****************家庭住址***************************//
private void buildJPanel4(JPanel p4)
{
p4.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l9 =new JLabel("家庭住址");
tf3 =new JTextField(38);
p4.add(l9);
p4.add(tf3);
}
//**************政治面貌、所学课程***********************//
private void buildJPanel5(JPanel p5)
{
p5.setLayout(new FlowLayout(FlowLayout.CENTER));
String zz[]={"共产党员","共青团员","民进党员","国民党员","民主党员","共和党员","其他党派"};
String SX[]={"JAVA组件","软件工程","数据库应用","数据结构","C语言基础","专业外语","大学物理","高等数学","大学英语"};
JLabel l10 =new JLabel("政治面貌");
jcb4=new JComboBox(zz);
jcb4.addItemListener(new JCB4());
JLabel l11 =new JLabel("所学课程");
list1 =new JList(SX);
list1.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);//允许选择相邻的一系列行
list1.addListSelectionListener(new lListSelectionListener());
JScrollPane sp1=new JScrollPane(list1);
sp1.setPreferredSize(new Dimension(250,70));
sp1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
p5.add(l10);
p5.add(jcb4);
p5.add(l11);
p5.add(sp1);
}
//***************所学专业***************************//
private void buildJPanel6(JPanel p6)
{
p6.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l12 =new JLabel("所学专业");
tf4 =new JTextField(36);
p6.add(l12);
p6.add(tf4);
}
//***************兴趣爱好***************************//
private void buildJPanel7(JPanel p7)
{
p7.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l13 =new JLabel("兴趣爱好");
jc1 =new JCheckBox("阅读");
jc1.addItemListener(new P7());
jc2 =new JCheckBox("运动");
jc2.addItemListener(new P7());
jc3 =new JCheckBox("饮食");
jc3.addItemListener(new P7());
jc4 =new JCheckBox("旅游");
jc4.addItemListener(new P7());
jc5 =new JCheckBox("音乐");
jc5.addItemListener(new P7());
jc6 =new JCheckBox("影视");
jc6.addItemListener(new P7());
jc7 =new JCheckBox("书籍");
jc7.addItemListener(new P7());
p7.add(l13);
p7.add(jc1);
p7.add(jc2);
p7.add(jc3);
p7.add(jc4);
p7.add(jc5);
p7.add(jc6);
p7.add(jc7);
}
//*************毕业院校*****************************//
private void buildJPanel8(JPanel p8)
{
p8.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l14 =new JLabel("毕业院校");
tf5 =new JTextField(36);
p8.add(l14);
p8.add(tf5);
}
//************专业技能*********************************//
private void buildJPanel9(JPanel p9)
{
p9.setLayout(new FlowLayout(FlowLayout.CENTER));
JLabel l15 =new JLabel("专业技能");
tf6 =new JTextField(37);
p9.add(l15);
p9.add(tf6);
}
//***********文本区***********************************//
private void buildJPanel10(JPanel p10)
{
p10.setLayout(new FlowLayout(FlowLayout.CENTER));
ta =new JTextArea(10,40);
ta.setEditable(false);
JScrollPane sp2=new JScrollPane(ta);
sp2.setSize(450,100);
sp2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
p10.add(sp2,BorderLayout.CENTER);
p10.setVisible(true);
}
//**********清空、提交****************************//
private void buildJPanel11(JPanel p11)
{
p11.setLayout(new FlowLayout(FlowLayout.CENTER));
JButton bt1 =new JButton("提交");//构建按钮提交
JButton bt4 =new JButton("清空");//构建按钮清空
bt1.addActionListener(new TJActionListener());
bt4.addActionListener(new QKActionListener());
p11.add(bt1);
p11.add(bt4);
}
//**********点击清空时发生**********************//定义事件
class QKActionListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
ta.setText("");
}
}
//*********点击提交时发生**********************//
class TJActionListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
//**************************************姓名栏
name=tf1.getText();
if(name!=null&&!name.equals(""))
ta.append("姓名: "+name+"\n");
else
ta.append("姓名未输入,请输入:\n");
//*******************************************性别栏
if(sex!=null&&!sex.equals(""))
ta.append("性别: "+sex+"\n");
else
ta.append("性别未输入,请输入:\n");
//*******************************************生日
if(year!=null&&!year.equals(""))
if(month!=null&&!month.equals(""))
if(day!=null&&!day.equals(""))
ta.append("出生日期:"+year+ "\\" +month+"\\"+day+"\n");
else
ta.append("日期未输入,请输入:\n");
else
ta.append("月份未输入,请输入:\n");
else
ta.append("年份未输入,请输入:\n");
//******************************************年龄栏
if(nl!=0)
ta.append("年龄为:"+nl+"\n");
else
ta.append("年龄输出错误:\n");
//******************************************地址栏
address=tf3.getText();
if(address!=null&&!address.equals(""))
ta.append("地址: "+address+"\n");
else
ta.append("地址未输入,请输入:\n");
//******************************************政治面貌
politics=(String)jcb4.getSelectedItem();
if(politics!=null&&!politics.equals(""))
ta.append("政治面貌: "+politics+"\n");
else
ta.append("政治面貌未输入,请输入:\n");
//******************************************所学课程
if(objects!=null&&!objects.equals(""))
ta.append("所学课程: "+objects+"\n");
else
ta.append("所学课程未输入,请输入:\n");
//******************************************所学专业
specialty=tf4.getText();
if(specialty!=null&&!specialty.equals(""))
ta.append("所学专业: "+specialty+"\n");
else
ta.append("所学专业未输入,请输入:\n");
//******************************************兴趣爱好
if(interest!=null&&!interest.equals(""))
ta.append("兴趣爱好: "+interest+"\n");
else
ta.append("兴趣爱好未输入,请输入:\n");
//******************************************毕业院校
graduate=tf5.getText();
if(graduate!=null&&!graduate.equals(""))
ta.append("毕业院校: "+graduate+"\n");
else
ta.append("毕业院校未输入,请输入:\n");
//******************************************专业技能
filedname=tf6.getText();
if(filedname!=null&&!filedname.equals(""))
fc.setSelectedFile(new File(filedname));
else
ta.append("专业技能未输入,请输入:\n");
}
}
//***********************实现事件监听*****************//
//***************************************性别
class JRB implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if((JRadioButton)e.getItem()==jrb1)
if(e.getStateChange()==ItemEvent.SELECTED)
sex="男";
else
sex="";
else if((JRadioButton)e.getItem()==jrb2)
if(e.getStateChange()==ItemEvent.SELECTED)
sex="女";
else
sex="";
}
}
//*****************************************年、月、日
class JBC1 implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
{
year=(String)jcb1.getSelectedItem();
y=Integer.parseInt((String)jcb1.getSelectedItem());
nl=2012-y;
tf2.setText(String.valueOf(nl));
}
}
}
class JBC2 implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
month=(String)jcb2.getSelectedItem();
m=Integer.parseInt((String)jcb2.getSelectedItem());
if(m==4||m==6||m==9||m==11)
{
jcb3.removeAllItems();
for(int i=1;i<31;i++)
jcb3.addItem(String.valueOf(i));
}
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
jcb3.removeAllItems();
for(int i=1;i<32;i++)
jcb3.addItem(String.valueOf(i));
}
int f;
if(y%4==0)
if(y%100==0)
if(y%400==0)
f=1;
else
f=0;
else
f=1;
else
f=0;
if(m==2)
if(f==1)
{
jcb3.removeAllItems();
for(int i=1;i<29;i++)
jcb3.addItem(String.valueOf(i));
}
else
{
jcb3.removeAllItems();
for(int i=1;i<30;i++)
jcb3.addItem(String.valueOf(i));
}
}
}
class JBC3 implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
day=(String)jcb3.getSelectedItem();
}
}
//***************************************政治面貌、所选课程
class JCB4 implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
politics=(String)jcb4.getSelectedItem();
}
}
class lListSelectionListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
objects=(String)list1.getSelectedValue();
}
}
//***********************************************兴趣爱好
class P7 implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
if((JCheckBox)e.getItem()==jc1)
if(e.getStateChange()==ItemEvent.SELECTED)
a[0]=1;
else
a[0]=0;
if((JCheckBox)e.getItem()==jc2)
if(e.getStateChange()==ItemEvent.SELECTED)
a[1]=1;
else
a[1]=0;
if((JCheckBox)e.getItem()==jc3)
if(e.getStateChange()==ItemEvent.SELECTED)
a[2]=1;
else
a[2]=0;
if((JCheckBox)e.getItem()==jc4)
if(e.getStateChange()==ItemEvent.SELECTED)
a[3]=1;
else
a[3]=0;
if((JCheckBox)e.getItem()==jc5)
if(e.getStateChange()==ItemEvent.SELECTED)
a[4]=1;
else
a[4]=0;
if((JCheckBox)e.getItem()==jc6)
if(e.getStateChange()==ItemEvent.SELECTED)
a[5]=1;
else
a[5]=0;
if((JCheckBox)e.getItem()==jc7)
if(e.getStateChange()==ItemEvent.SELECTED)
a[6]=1;
else
a[6]=0;
interest =INT(a);
}
}
public String INT (int a[])
{
String s="";
String Color[]={"阅读"," 运动"," 饮食"," 旅游"," 音乐"," 影视"," 书籍"};
for(int i=0;i<7;i++)
if(a[i]!=0)
s= s +Color[i];
else
continue;
return s;
}
public static void main(String[] args)
{
new MyJianLi();
}
}