各位大虾 下面Java程序出现些问题还请帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:56:33
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class RC extends JFrame implements ActionListener//,KeyListener
{
Panel p,p1,p2,p21,p22;
Can canvas;
JButton bstart,bquit;
JTextField text;
JLabel label;
final ChangeThread cthread;
String s1,s2;
int score=0;
public RC()
{
p=new Panel();
p.setLayout(new BorderLayout());
this.add(p);
this.setVisible(true);
this.setSize(1000,700);

Can canvas=new Can();
p.add(canvas,BorderLayout.CENTER);
cthread=new ChangeThread(canvas);

p1=new Panel();
bstart=new JButton("start");

bstart.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{cthread.start();}
});
p1.add(bstart);

bq

是因为 s2 = canvas.getS();
变量s2 还没有初始化.
s2中引用的地址是空的,所有抛出NullPointer异常

可以改成:

canvas = new Can();
s2 = canvas.getS();

这样就好了 或者 在Can的构造方法中初始化也行.

不要学SWING了,浪费时间,基本上用不到