帮忙看看这个程序怎么了?解决立即给分~~~~~~
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo5 extends JFrame
{
//创建组件的对象
JFrame frame=new JFrame("成绩管理");
JPanel PRadio=new JPanel(); //单选按钮面板
JRadioButton teacherButton=new JRadioButton("老师");
JRadioButton studentButton=new JRadioButton("学生");
JRadioButton manageButton=new JRadioButton("管理员");
ButtonGroup group=new ButtonGroup(); //单选按钮组
JTextField TNumberIn=new JTextField(8); //输入学号框
JLabel LNumberIn=new JLabel("输入学号: "); //输入学号标签
JButton BIn=new JButton("确认"); //输入按钮
JTextField TScoreIn=new JTextField(8); //成绩输入框
JLabel LScoreIn=new JLabel("请输入成绩:"); //成绩输入标签
JTextField TNumberQuery=new JTextField(8); //学号查询框
JLabel LNumberQuery=new JLabel("请输入学号:"); //学号查询标签
JTextField TScoreQuery=new JTextField(8) ; //成绩查询框
JLabel LScoreQuery=new JLabel("您的成绩是:"); //成绩查询标签
JButton BQuery=new JButton("查询"); //查询按钮
JTextField TNumberUpdate=new JTextField(8) ; //学号修改框
JLabel LNumberUpdate=new JLabel("请输入学号:"); //学号修改标签
JTextField TScoreUpdate=new JTextField(8) ; //成绩修改框
JLabel LScoreUpdate=new JLabel("成绩改为: "); //成绩修改标签
JTextField TScoreAgo=new JTextField(8) ; //原有成绩框
JLabel LScoreAgo=new JLabel("原有成绩: "); //原有成绩标签
JButton BUpdate =new JButton("确定"); //修改按钮
JTabbedPane tabbedPane=new JTabbedPane(); //标签面板
JPanel panel1=new JPanel(); //成绩输入面板
JPanel Panel11=new JPanel();
JPanel Panel12=new JPanel();
JPanel panel2=new JPanel(); //成绩查询面板
JPanel Panel21=new JPanel();
JPanel Panel22=new JPanel();
JPanel panel3=new JPanel(); //成绩修改面板
JPanel Panel31=new JPanel();
JPanel panel4=new JPanel();
JPanel Panel32=new JPanel();
JPanel Panel33=new JPanel();
JPanel Manage =new JPanel(); //顶层面板
class Student
{
int SNumber=0,Score=0;
}
Student st[]=new Student[10]; //设所能处理的成绩个数为10
int i;
public Demo5()
{
//建立单选面板
PRadio.setLayout(new GridLayout(1,1));
teacherButton.setSelected(true);
group.add(teacherButton);
group.add(studentButton);
group.add(manageButton);
PRadio.add(teacherButton);
PRadio.add(studentButton);
PRadio.add(manageButton);
PRadio.setBorder(BorderFactory.createEmptyBorder(20,20,20,0));
//建立标签面板
//建立输入面板
panel1.setLayout(new BorderLayout());
Panel11.setLayout(new FlowLayout());
Panel11.add(LNumberIn);
Panel11.add(TNumberIn);
panel1.add(Panel11,BorderLayout.NORTH);
Panel12.setLayout(new FlowLayout());
Panel12.add(LScoreIn);
Panel12.add(TScoreIn);
panel1.add(Panel12,BorderLayout.CENTER);
panel1.add(BIn,BorderLayout.SOUTH);
tabbedPane.addTab("成绩输入",null,panel1,null);
tabbedPane.setSelectedIndex(0);//一开始选中"成绩输入"标签面板
//建立查询面板
panel2.setLayout(new BorderLayout());
Panel21.setLayout(new FlowLayout());
Panel21.add(LNumberQuery);
Panel21.add(TNumberQuery);
panel2.add(Panel21,BorderLayout.NORTH);
TScoreQuery.setEditable(false);
Panel22.setLayout(new FlowLayout());
Panel22.add(LScoreQuery);
Panel22.add(TScoreQuery);
panel2.add(Panel22,BorderLayout.CENTER);
panel2.add(BQuery,BorderLayout.SOUTH);
tabbedPane.addTab("成绩查询",null,panel2,null);
//建立修改面板
panel3.setLayout(new BorderLayout());
Panel31.setLayout(new FlowLayout());
Panel31.add(LNumberUpdate);
Panel31.add(TNumberUpdate);
panel3.add(Panel31,BorderLayout.NORTH);
panel4.setLayout(new BorderLayout());
Panel32.setLayout(new FlowLayout());
Panel32.add(LScoreAgo);
Panel32.add(TScoreAgo);
panel4.add(Panel32,BorderLayout.NORTH);
Panel33.setLayout(new FlowLayout());
Panel33.add(LScoreUpdate);
Panel33.add(TScoreUpdate);
panel4.add(Panel33,BorderLayout.CENTER);
panel3.add(panel4,BorderLayout.CENTER);
panel3.add(BUpdate,BorderLayout.SOUTH);
tabbedPane.addTab("成绩修改",null,panel3,null);
tabbedPane.setLayout(new GridLayout(0,1));
//建立顶层面板
Manage.setLayout(new FlowLayout());
Manage.add(PRadio);
Manage.add(tabbedPane);
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
frame.getContentPane().add(new Demo5());
frame.pack();
frame.setVisible(true);
}
public static void main(String args[])
{
Demo5 demo=new Demo5();
}
}
------------------------------------------------------------
D:\chengji>javac Demo5.java
D:\chengji>java Demo5
Exception in thread "main" java.lang.OutOfMemoryError
<<no stack trace available>>
Exception occurred during event dispatching:
java.lang.OutOfMemoryError
<<no stack trace available>>
1.运行了有十几秒才出现这个错误,怎么回事?
2.frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
这段代码有时可以放在主方法中
有时有看到放在构造方法中
二种有什么区别?
3.还有就是
是所有的组件对象都作为类成员吗?
又是看到JLabel label=new JLabel();
放在构造函数中~~~~
我说的对吗?~~
谢谢~~