如标题,我写了个五子棋,当前问题是我不能给页面上添加控件,因为我用了个图片做的背景,请问我应该怎么修改我的代码那?private static final long serialVersionUID = 1L;

//背景图片
BufferedImage bgImage = null;
FiveCheseAlgorithm f = new FiveCheseAlgorithm();

private int X = 0;
private int Y = 0;

//存放在allChess中的数据 
//0表示没有棋子,1表示黑子,2表示白字
private int [][] allChess = new int[19][19];
boolean  flag = false;  //false表示黑子,true表示白字
boolean checkdownChess = true; //是否连接服务器

int param1 = 0; //x轴的坐标
int param2 = 0; //y轴的坐标

//客户端界面的画面
private JComboBox jcomboBox;
private JLabel jlsname;   //服务器名
private JTextField jtfsname; 


public ClientFiveChese(){

this.setTitle("五子棋");
this.setSize(500, 500);
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
//窗体出现的位置
this.setLocation((width-500)/2,(height-500)/2);
//窗体的大小不能改变
this.setResizable(false);
//窗体关闭
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


this.setVisible(true);

try {
bgImage = ImageIO.read(new File("e:\\background.jpg"));
System.out.println(bgImage);
} catch (IOException e) {
e.printStackTrace();
}

addMouseListener(this);
}

public void paint(Graphics g) {
//绘制背景
g.drawImage(bgImage, 0, 20, this);
//绘制标题信息
g.setFont(new Font("黑体",Font.BOLD,20));
g.drawString("游戏信息:", 120, 60);
g.setFont(new Font("宋体",20,20));
g.drawString("黑方时间:无限制", 30, 480);
g.drawString("白方时间:无限制", 250, 480);
f.drawImageShow(X, Y, allChess, g);
} public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub

} public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub

} public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub

} public void mousePressed(MouseEvent e) {
X = e.getX();
Y = e.getY();
if(checkdownChess){
if(X >= 10 && X <= 370 && Y >= 70 && Y <= 430 ){
int paramx = ((int)(X-(Math.rint((X-10)/20))*20))/2;
int paramy = ((int)(Y-(Math.rint((Y-70)/20))*20))/2;
if(paramx >= 10){  //如果点击的点的x坐标大于10则显示x轴在右边的交点处
X = 10 + (X-10)/20 * 20 + 20;
}else{  //如果点击的点的x坐标小于10则显示在x轴左边的交点处
X = 10 + (X-10)/20 * 20;
}

if(paramy >= 40){//如果点击的点的y坐标大于40则显示y轴在右边的交点处
Y = 70 + (Y - 70)/20 * 20 + 20;
}else{//如果点击的点的y坐标大于40则显示y轴在右边的交点处
Y = 70 + (Y - 70)/20 * 20;
}

param1 =(X -10)/20;   //获取x坐标添加到二维数组中
param2 = (Y - 70)/20; //获取y坐标添加到二维数组中
if(allChess[param1][param2] == 1 || allChess[param1][param2] == 2){
JOptionPane.showMessageDialog(this, "此处已经有棋子了,不能下载此处");
}else{
if(!flag){
allChess[param1][param2] = 1;
flag = true;
}else{
allChess[param1][param2] = 2;
flag = false;
}

repaint();  //点击在棋盘上则重新绘制图片



boolean checkFlagHorizontal = f.checkFiveChessHorizontal(param1,param2,allChess);  //横向够成五子
boolean checkFlagVertical = f.checkFiveChessVertical(param1,param2,allChess);   //竖向够成五子
boolean checkFlagHorizontalVertical = f.checkFiveChessHorizontalVertical(param1,param2,allChess);//反斜杠够五子
boolean checkFlagVerticalHorizontal = f.checkFiveChessVerticalHorizontal(param1,param2,allChess); //正斜杠够五子
if(checkFlagHorizontal || checkFlagVertical || checkFlagHorizontalVertical ||checkFlagVerticalHorizontal){
JOptionPane.showMessageDialog(this, "成功");
}
}
}
}
}