⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 greedsnakeframe.java~1~

📁 本人经过一周废寝忘食编写的贪食蛇游戏改进版
💻 JAVA~1~
字号:
package gameproject;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;

public class GreedSnakeFrame extends JFrame {
  JPanel contentPane;
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenuGame = new JMenu();
  JMenuItem jMenuGameExit = new JMenuItem();
  JMenu jMenuHelp = new JMenu();
  JMenuItem jMenuHelpAbout = new JMenuItem();
  JMenuItem jMenuGamePlay = new JMenuItem();
  JMenuItem jMenuGamePause = new JMenuItem();
  JMenuItem jMenuGameReplay = new JMenuItem();
  JMenu jMenuSpeed = new JMenu();
  JMenu jMenuAudio = new JMenu();
  JCheckBoxMenuItem jCheckBoxAudioVoice = new JCheckBoxMenuItem();
  JCheckBoxMenuItem jCheckBoxAudioMusic = new JCheckBoxMenuItem();
  JMenuItem jMenuHelpHowToPlay = new JMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed1 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed2 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed3 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed4 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed5 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed6 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed7 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed8 = new JRadioButtonMenuItem();
  JRadioButtonMenuItem jRadioButtonSpeed9 = new JRadioButtonMenuItem();
  XYLayout xYLayout1 = new XYLayout();
  JPanel jPanel1 = new JPanel();
  JPanel paintCanvas = new JPanel();
  TitledBorder titledBorder1;
  TitledBorder titledBorder2;
  TitledBorder titledBorder3;
  TitledBorder titledBorder4;
  JPanel jPanel3 = new JPanel();
  TitledBorder titledBorder5;
  TitledBorder titledBorder6;
  TitledBorder titledBorder7;
  TitledBorder titledBorder8;
  JPanel jPanel4 = new JPanel();
  JPanel jPanel5 = new JPanel();
  TitledBorder titledBorder9;
  TitledBorder titledBorder10;
  TitledBorder titledBorder11;
  TitledBorder titledBorder12;
  GridLayout gridLayout1 = new GridLayout();
  JLabel record = new JLabel();
  JLabel jLabel2 = new JLabel();
  JLabel level = new JLabel();
  JLabel jLabel4 = new JLabel();
  JLabel jLabel5 = new JLabel();
  JLabel jLabel6 = new JLabel();
  XYLayout xYLayout2 = new XYLayout();
  GridLayout gridLayout2 = new GridLayout();
  JLabel score = new JLabel();
  JLabel jLabel8 = new JLabel();
  JLabel jLabel9 = new JLabel();
  JLabel speed = new JLabel();
  TitledBorder titledBorder13;
  TitledBorder titledBorder14;
  TitledBorder titledBorder15;
  BorderLayout borderLayout1 = new BorderLayout();
  BorderLayout borderLayout2 = new BorderLayout();
  JLabel jLabel1 = new JLabel();
  //----------------------------------------------
 public static final int squareLength=15;    //every node consist of nine square
 public static final int horizontalNumber=20; //there are 20 nodes in a line
 public static final int verticalNumber=11;   //there are 11 nodes in a row
 int timeInterval;
 SnakeModel snakeModel=null;
Message message=new Message();


  //Construct the frame
  public GreedSnakeFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    titledBorder1 = new TitledBorder("");
    titledBorder2 = new TitledBorder("");
    titledBorder3 = new TitledBorder("");
    titledBorder4 = new TitledBorder("");
    titledBorder5 = new TitledBorder("");
    titledBorder6 = new TitledBorder("");
    titledBorder7 = new TitledBorder("");
    titledBorder8 = new TitledBorder("");
    titledBorder9 = new TitledBorder("");
    titledBorder10 = new TitledBorder("");
    titledBorder11 = new TitledBorder("");
    titledBorder12 = new TitledBorder("");
    titledBorder13 = new TitledBorder("");
    titledBorder14 = new TitledBorder("");
    titledBorder15 = new TitledBorder("");
    contentPane.setLayout(xYLayout1);
    this.setSize(new Dimension(405, 285));
    this.setTitle("GreedSnake");
    jMenuGame.setText("Game");
    jMenuGameExit.setText("Exit");
    jMenuGameExit.addActionListener(new GreedSnakeFrame_jMenuGameExit_ActionAdapter(this));
    jMenuHelp.setText("Help");
    jMenuHelpAbout.setText("About");
    jMenuHelpAbout.addActionListener(new GreedSnakeFrame_jMenuHelpAbout_ActionAdapter(this));
    jMenuGamePlay.setText("Play");
    jMenuGamePlay.addActionListener(new GreedSnakeFrame_jMenuGamePlay_actionAdapter(this));
    jMenuGamePause.setText("Pause");
    jMenuGameReplay.setText("Replay");
    jMenuSpeed.setText("Speed");
    jMenuAudio.setText("Audio");
    jCheckBoxAudioVoice.setText("Voice");
    jCheckBoxAudioMusic.setText("Music");
    jMenuHelpHowToPlay.setText("How to play");
    jRadioButtonSpeed1.setText("1");
    jRadioButtonSpeed2.setText("2");
    jRadioButtonSpeed3.setText("3");
    jRadioButtonSpeed4.setText("4");
    jRadioButtonSpeed5.setText("5");
    jRadioButtonSpeed6.setText("6");
    jRadioButtonSpeed7.setText("7");
    jRadioButtonSpeed8.setText("8");
    jRadioButtonSpeed9.setText("9");
    jPanel1.setLayout(xYLayout2);
    paintCanvas.setBackground(Color.white);
    paintCanvas.setBorder(titledBorder4);
    paintCanvas.setLayout(borderLayout1);
    jPanel4.setBorder(titledBorder10);
    jPanel4.setLayout(gridLayout1);
    jPanel5.setBorder(titledBorder12);
    jPanel5.setLayout(gridLayout2);
    gridLayout1.setColumns(2);
    gridLayout1.setRows(3);
    record.setFont(new java.awt.Font("Dialog", 0, 15));
    record.setText("");
    jLabel2.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel2.setText("record:");
    level.setFont(new java.awt.Font("Dialog", 0, 15));
    level.setText("");
    jLabel4.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel4.setText("level:");
    jLabel5.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel5.setText("blue_wing");
    jLabel6.setEnabled(true);
    jLabel6.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel6.setDoubleBuffered(false);
    jLabel6.setDisplayedMnemonic('0');
    jLabel6.setText("name:");
    gridLayout2.setColumns(2);
    gridLayout2.setRows(2);
    score.setFont(new java.awt.Font("Dialog", 0, 15));
    score.setText("0");
    jLabel8.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel8.setText("Score:");
    jLabel9.setFont(new java.awt.Font("Dialog", 0, 15));
    speed.setFont(new java.awt.Font("Dialog", 0, 15));
    speed.setText("Speed:");
    jPanel3.setBackground(Color.white);
    jPanel3.setAlignmentX((float) 0.5);
    jPanel3.setAlignmentY((float) 0.5);
    jPanel3.setBorder(titledBorder15);
    jPanel3.setLayout(borderLayout2);
    contentPane.setAlignmentX((float) 0.5);
    jLabel1.setIcon(new ImageIcon(GreedSnakeFrame.class.getResource("about.png")));
    jLabel1.setText("jLabel1");
    jMenuGame.add(jMenuGamePlay);
    jMenuGame.addSeparator();
    jMenuGame.add(jMenuGamePause);
    jMenuGame.add(jMenuGameReplay);
    jMenuGame.addSeparator();
    jMenuGame.add(jMenuGameExit);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuHelp.add(jMenuHelpHowToPlay);
    jMenuBar1.add(jMenuGame);
    jMenuBar1.add(jMenuSpeed);
    jMenuBar1.add(jMenuAudio);
    jMenuBar1.add(jMenuHelp);
    jMenuSpeed.add(jRadioButtonSpeed9);
    jMenuSpeed.add(jRadioButtonSpeed8);
    jMenuSpeed.add(jRadioButtonSpeed7);
    jMenuSpeed.add(jRadioButtonSpeed6);
    jMenuSpeed.add(jRadioButtonSpeed5);
    jMenuSpeed.add(jRadioButtonSpeed4);
    jMenuSpeed.add(jRadioButtonSpeed3);
    jMenuSpeed.add(jRadioButtonSpeed2);
    jMenuSpeed.add(jRadioButtonSpeed1);
    jMenuAudio.add(jCheckBoxAudioVoice);
    jMenuAudio.add(jCheckBoxAudioMusic);
    contentPane.add(jPanel1,      new XYConstraints(0, 0, 405, 60));
    jPanel4.add(jLabel6, null);
    jPanel4.add(jLabel5, null);
    jPanel4.add(jLabel4, null);
    jPanel4.add(level, null);
    jPanel4.add(jLabel2, null);
    jPanel4.add(record, null);
    jPanel1.add(jPanel3,    new XYConstraints(0, 0, 60, 60));
    jPanel3.add(jLabel1,  BorderLayout.CENTER);
    jPanel1.add(jPanel5,         new XYConstraints(230, 0, 175, 60));
    jPanel5.add(speed, null);
    jPanel5.add(jLabel9, null);
    jPanel5.add(jLabel8, null);
    jPanel5.add(score, null);
    jPanel1.add(jPanel4,            new XYConstraints(60, 0, 170, 60));
    contentPane.add(paintCanvas, new XYConstraints(0, 60, 405, 225));
    this.setJMenuBar(jMenuBar1);
    //-----------------------------------------------------------
    String[] msg=message.readMsg("file:///C:/windows/Prefetch/greedsnake.pf");
    if(true){                      //????????????????????????????????
      level.setText(msg[0]);
      record.setText(msg[1]);
      speed.setText(msg[2]);
    }else{
      level.setText("beginning");
      record.setText("0");
      speed.setText("9");
    }
    this.setResizable(false);
  }
  //File | Exit action performed
  public void jMenuGameExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }
  //Help | About action performed
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
    GreedSnakeFrame_AboutBox dlg = new GreedSnakeFrame_AboutBox(this);
    Dimension dlgSize = dlg.getPreferredSize();
    Dimension frmSize = getSize();
    Point loc = getLocation();
    dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
    dlg.setModal(true);
    dlg.pack();
    dlg.show();
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      jMenuGameExit_actionPerformed(null);
    }
  }
  //----------------------------------------------------------
  public void repaint(){

  }
  public void drawNode(){

  }
  public void updateScore(){

  }

  void jMenuGamePlay_actionPerformed(ActionEvent e) {
    if(snakeModel==null||!snakeModel.running){
      snakeModel=new SnakeModel(this,20,11);
      (new Thread(snakeModel)).start();
    }
  }

}

class GreedSnakeFrame_jMenuGameExit_ActionAdapter implements ActionListener {
  GreedSnakeFrame adaptee;

  GreedSnakeFrame_jMenuGameExit_ActionAdapter(GreedSnakeFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuGameExit_actionPerformed(e);
  }
}

class GreedSnakeFrame_jMenuHelpAbout_ActionAdapter implements ActionListener {
  GreedSnakeFrame adaptee;

  GreedSnakeFrame_jMenuHelpAbout_ActionAdapter(GreedSnakeFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuHelpAbout_actionPerformed(e);
  }
}

class GreedSnakeFrame_jMenuGamePlay_actionAdapter implements java.awt.event.ActionListener {
  GreedSnakeFrame adaptee;

  GreedSnakeFrame_jMenuGamePlay_actionAdapter(GreedSnakeFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuGamePlay_actionPerformed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -