请各位java高手帮我改错,谢谢!

importjavax.swing.*;publicclassStudentInfoextendsJFrame{//寄承窗口JLabellabname,labsex,la... import javax.swing.*;
public class StudentInfo extends JFrame{//寄承窗口
JLabel labname,labsex,labno,birthday,hobby;
JTextField tfname,tfno;
JRadioButton mail,femail;
JCheckBox love1,love2,love3,love4;
JList course;
JLabel labbirth;
JComboBox Year,Month;
public StudentInfo()
{

labname=new JLabel("姓名");
tfname=new JTextField(10);
labno=new JLabel("学号");
tfno=new JTextField(15);
labsex=new JLabel("性别");
mail=new JRadioButton("男");
femail=new JRadioButton("女");
ButtonGroup rbsex=new ButtonGroup();
rbsex.add(mail);
rbsex.add(femail);
JPanel p1=new JPanel();
p1.add(labname);
p1.add(tfname);
p1.add(labno);
p1.add(tfno);
p1.add(mail);
p1.add(femail);
hobby=new JLabel("爱好");
JCheckBox love1=new JCheckBox("唱歌");
JCheckBox love2=new JCheckBox("跳舞");
JCheckBox love3=new JCheckBox("游泳");
JCheckBox love4=new JCheckBox("旅游");
p1.add(hobby);
p1.add(love1);
p1.add(love2);
p1.add(love3);
p1.add(love4);
labbirth=new JLabel("出生年月");
String[]myyear=new String[50];
for(int i=50;i<100;i++)
myyear[i]=(1970+i)+"年";
Year=new JComboBox(myyear);
String[]mymonth=new String[12];
for(int j=0;j<12;j++)
mymonth[j]=(j+1)+"月";
Month=new JComboBox(mymonth);

Year.setEditable(true);
Month.setEditable(true);
String ser[]={"英语","数学","语文","物理","java"};
JList course=new JList(ser);
//p1.setSelectionMode(2);//设置可以多选//
p1.add(birthday);
p1.add(Year);
p1.add(Month);
p1.add(course);
this.getContentPane().add(p1);

}

public static void main(String[] args) {
StudentInfo stu=new StudentInfo ();//创建对象
stu.setVisible(true);//设置为可见性
stu.setSize(300,200);
stu.setTitle("我的第一个窗口程序!");

}

}
展开
 我来答
aixinziluo
2008-09-09 · TA获得超过161个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:114万
展开全部
可以运行啦。。不过有两个问题。。
一是:出生年月是从2020年开始。。要改的话就改:for(int i=50;i<100;i++)
myyear[i-50]=(1970+i)+"年";
i初始值一改然后下面i减去它的初始值就可以啦。。
二是:我不知道你的birthday做什么的。。因为它么有被赋值。。所以会出现空指针的错误。所以我先注销啦。。

import javax.swing.*;
public class StudentInfo extends JFrame{//寄承窗口
JLabel labname,labsex,labno,birthday,hobby;
JTextField tfname,tfno;
JRadioButton mail,femail;
JCheckBox love1,love2,love3,love4;
JList course;
JLabel labbirth;
JComboBox Year,Month;
public StudentInfo()
{

labname=new JLabel("姓名");
tfname=new JTextField(10);
labno=new JLabel("学号");
tfno=new JTextField(15);
labsex=new JLabel("性别");
mail=new JRadioButton("男");
femail=new JRadioButton("女");
ButtonGroup rbsex=new ButtonGroup();
rbsex.add(mail);
rbsex.add(femail);
JPanel p1=new JPanel();
p1.add(labname);
p1.add(tfname);
p1.add(labno);
p1.add(tfno);
p1.add(mail);
p1.add(femail);
hobby=new JLabel("爱好");
JCheckBox love1=new JCheckBox("唱歌");
JCheckBox love2=new JCheckBox("跳舞");
JCheckBox love3=new JCheckBox("游泳");
JCheckBox love4=new JCheckBox("旅游");
p1.add(hobby);
p1.add(love1);
p1.add(love2);
p1.add(love3);
p1.add(love4);
labbirth=new JLabel("出生年月");
String[]myyear=new String[50];
for(int i=50;i<100;i++)
myyear[i-50]=(1970+i)+"年";
Year=new JComboBox(myyear);
String[]mymonth=new String[12];
for(int j=0;j<12;j++)
mymonth[j]=(j+1)+"月";
Month=new JComboBox(mymonth);

Year.setEditable(true);
Month.setEditable(true);
String ser[]={"英语","数学","语文","物理","java"};
JList course=new JList(ser);
//p1.setSelectionMode(2);//设置可以多选//
//p1.add(birthday);
p1.add(Year);
p1.add(Month);
p1.add(course);
this.getContentPane().add(p1);

}

public static void main(String[] args) {
StudentInfo stu=new StudentInfo ();//创建对象
stu.setVisible(true);//设置为可见性
stu.setSize(300,200);
stu.setTitle("我的第一个窗口程序!");

}

}
百度网友3b46a7f
2008-09-09 · TA获得超过2520个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:0
展开全部
错误点:
1> for(int i=50;i<100;i++)
要给myyear数组赋值,循环应该从0开始!
2>p1.add(birthday); birthday 这个变量你声明以后没有赋值,所以会出现空指针异常!
改成labbirth这个标签就好。
3>不知道你最后的课程要实现什么样的效果,索性就没改了~~

修改后代码:
import javax.swing.*;
public class StudentInfo extends JFrame{//寄承窗口
JLabel labname,labsex,labno,birthday,hobby;
JTextField tfname,tfno;
JRadioButton mail,femail;
JCheckBox love1,love2,love3,love4;
JList course;
JLabel labbirth;
JComboBox Year,Month;
public StudentInfo()
{

labname=new JLabel("姓名");
tfname=new JTextField(10);
labno=new JLabel("学号");
tfno=new JTextField(15);
labsex=new JLabel("性别");
mail=new JRadioButton("男");
femail=new JRadioButton("女");
ButtonGroup rbsex=new ButtonGroup();
rbsex.add(mail);
rbsex.add(femail);
JPanel p1=new JPanel();
p1.add(labname);
p1.add(tfname);
p1.add(labno);
p1.add(tfno);
p1.add(mail);
p1.add(femail);
hobby=new JLabel("爱好");
JCheckBox love1=new JCheckBox("唱歌");
JCheckBox love2=new JCheckBox("跳舞");
JCheckBox love3=new JCheckBox("游泳");
JCheckBox love4=new JCheckBox("旅游");
p1.add(hobby);
p1.add(love1);
p1.add(love2);
p1.add(love3);
p1.add(love4);
labbirth=new JLabel("出生年月");
String[]myyear=new String[50];
for(int i=0;i<50;i++)
myyear[i]=(1970+i)+"年";
Year=new JComboBox(myyear);
String[]mymonth=new String[12];
for(int j=0;j<12;j++)
mymonth[j]=(j+1)+"月";
Month=new JComboBox(mymonth);

Year.setEditable(true);
Month.setEditable(true);
String ser[]={"英语","数学","语文","物理","java"};
JList course=new JList(ser);
//p1.setSelectionMode(2);//设置可以多选//
p1.add(labbirth);
p1.add(Year);
p1.add(Month);
p1.add(course);
this.getContentPane().add(p1);

}

public static void main(String[] args) {
StudentInfo stu=new StudentInfo();//创建对象
stu.setVisible(true);//设置为可见性
stu.setSize(400,400);
stu.setTitle("我的第一个窗口程序!");

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xishuxishu
2008-09-09
知道答主
回答量:25
采纳率:0%
帮助的人:0
展开全部
汗 貌似没什么错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式