请各位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("我的第一个窗口程序!");
}
} 展开
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("我的第一个窗口程序!");
}
} 展开
3个回答
展开全部
可以运行啦。。不过有两个问题。。
一是:出生年月是从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("我的第一个窗口程序!");
}
}
一是:出生年月是从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("我的第一个窗口程序!");
}
}
展开全部
错误点:
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("我的第一个窗口程序!");
}
}
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("我的第一个窗口程序!");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询