import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
public class MySnake {
public static void main(String[] args){
SnakeFrame snakeFrame=new SnakeFrame();
        
        snakeFrame.setVisible(true);
        snakeFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
 }
}
class SnakeFrame extends JFrame{

Mysnake mysnake;
private JPanel controlpane=new JPanel();
private JPanel jp1=new JPanel();
private JPanel gamepane=new JPanel(); private JMenuBar mb=new JMenuBar();
private JMenu file=new JMenu("文件");
    private JMenu select=new JMenu("选关");
    private JMenu help=new JMenu("帮助");
    private JMenu name=new JMenu("排名");    private JLabel Score=new JLabel("得分:");
    private JLabel Dengj=new JLabel("等级:");
    private JLabel DeFen=new JLabel();  
private JLabel Speed=new JLabel();
private String Score1;
protected static final int YES_NO_OPTION = 0;
    //产生按钮
private JMenuItem[] fitem={ 
//建立插入文件的菜单项
new JMenuItem("开始"),
new JMenuItem("暂停"),
new JMenuItem("继续"),
new JMenuItem("退出"), };
private JMenuItem[] xuan={
new JMenuItem("初级"),
new JMenuItem("中级"),
new JMenuItem("高级"),
};
        //构造函数,产生面板
public SnakeFrame(){

setTitle("zw制作");
        setLocation(200,200);
        setSize(435,390);
        
        setLayout(new BorderLayout());
        Score1=String.valueOf(mysnake.score);
     Score.setBounds(300, 25, 60, 20);
        jp1.add(Score);
        jp1.add(DeFen);
     DeFen.setText(Score1);
     Dengj.setBounds(300, 20, 60, 20);
     jp1.add(Dengj);
     jp1.add(Speed);    
     Speed.setText("SLOW");
     add(jp1,BorderLayout.EAST);
    
     controlpane.setLayout(new FlowLayout(FlowLayout.LEFT));
     mb.add(file);
     mb.add(name);
     mb.add(select);
     mb.add(help);   
     controlpane.add(mb);     
     add(controlpane,BorderLayout.NORTH);
    
     add(gamepane);
     gamepane.setFocusable(true);
     gamepane.setBorder(BorderFactory.createLineBorder(Color.darkGray));
     ActionListener actionListener=new ActionListener() {
     public void actionPerformed(ActionEvent e) {
     //当单击不同菜单项时候,出现不同反应
     if(((JMenuItem)e.getSource())==fitem[0]){
     mysnake.isRun=true;
     }//如果单击开始,
    
     if(((JMenuItem)e.getSource())==fitem[1]){
     mysnake.isRun=false;
     }//如果单击暂停,
    
     if(((JMenuItem)e.getSource())==fitem[2]){
     mysnake.isRun=true;
     }//如堕单击继续,
    
     if(((JMenuItem)e.getSource())==fitem[3]){//如果单击退出
        int result=JOptionPane.showConfirmDialog(null, "确认退出",null,YES_NO_OPTION);
        if(result==JOptionPane.YES_OPTION)
        System.exit(0);
        else
        return;
         }
     if(((JMenuItem)e.getSource())==xuan[0]||((JMenuItem)e.getSource())==xuan[1]||
     ((JMenuItem)e.getSource())==xuan[2]){         if(((JMenuItem)e.getSource())==xuan[0]){
         mysnake.speed=Mysnake.SLOW;
         Speed.setText("SLOW");
         }
         if(((JMenuItem)e.getSource())==xuan[1]){
         mysnake.speed=Mysnake.MID;
         Speed.setText("MID");
             }
         if(((JMenuItem)e.getSource())==xuan[2]){
         mysnake.speed=Mysnake.FAST;
         Speed.setText("FAST");
             }
     }
     }
     };
     for(int i=0;i<fitem.length;i++){
     file.add(fitem[i]);
     fitem[i].addActionListener(actionListener);
     //插入监听按钮
        }
     for(int i=0;i<xuan.length;i++){
     select.add(xuan[i]);
     xuan[i].addActionListener(actionListener);
     //插入监听按钮
     }  
}

}
class Mysnake{

    boolean isRun;// ---------是否运动中
    int derection;// --------方向
    ArrayList<SnakeNode> body;// -----蛇体
    SnakeNode food;// --------食物
    int score;
    int status;
    int speed;
    public static final int SLOW = 500;
    public static final int MID = 300;
    public static final int FAST = 100;
    public static final int RUNNING = 1;
    public static final int PAUSED = 2;
    public static final int GAMEOVER = 3;
    public static final int LEFT = 1;
    public static final int UP = 2;
    public static final int RIGHT = 3;
    public static final int DOWN = 4;
    public Mysnake(){
        speed = SLOW;
        score = 0;
        isRun = false;
        status = PAUSED;
        derection = RIGHT;
        body = new ArrayList<SnakeNode>();
        body.add(new SnakeNode(60, 20));
        body.add(new SnakeNode(40, 20));
        body.add(new SnakeNode(20, 20));
    }
   
}
class SnakeNode{
public static final int High=10;
public static final int Wide=10;
SnakeNode food;
int x;
int y;
public SnakeNode(int x,int y){
this.x=x;
this.y=y;
}
}
//绘制部分
/*
class DrawSnake extends JPanel{
Mysnake mysnake;
    public DrawSnake(Mysnake mysnake) {
            this.mysnake=mysnake;
    }    public void paintComponent(Graphics g) {
            super.paintComponent(g);
            SnakeNode snakeNode = null;
            for (int i = 0; i < mysnake.body.size(); i++) {// ---红蓝间隔画蛇身
                    if (i % 2 == 0)
                            g.setColor(Color.blue);
                    else
                            g.setColor(Color.yellow);
                    snakeNode = mysnake.body.get(i);
                    g.fillRect(snakeNode.x, snakeNode.y, snakeNode.High, snakeNode.Wide);// *******************试用*********************
            }
            snakeNode = snakeNode.food;
            g.setColor(Color.red);
            g.fillRect(snakeNode.x, snakeNode.y, snakeNode.High, snakeNode.Wide);
    }
}
*/问题1:
首先是不能运行,在没有画图部分(/* */部分)时候,还能运行,但是事件的监听也不正常,就是在选择等级部分,面板上不能正常反映
问题2:
就是绘制蛇头、蛇身部分了
呵呵
谢谢解答了