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

📄 贪吃蛇 .txt

📁 java小游戏-贪吃蛇
💻 TXT
📖 第 1 页 / 共 2 页
字号:
} 
} 
} 

ConfigMenu.java 

package SnakeGame; 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 


public class ConfigMenu extends JMenuBar 
{ 

GameFrame owner; 
JMenu[] menu; 
JMenuItem[] menuItem; 
JRadioButtonMenuItem[] speedItem, modelItem, standardItem; 
private UIManager.LookAndFeelInfo looks[]; 
public ConfigMenu( GameFrame owner ) 
{ 
this.owner = owner; 
owner.setJMenuBar( this ); 
String[] menu_name = {"Snake Game", "Game Configure", "Game Help"}; 
menu = new JMenu[menu_name.length]; 
for( int i = 0; i < menu_name.length; i++ ) 
{ 
menu[i] = new JMenu( menu_name[i] ); 
menu[i].setFont( new Font( "Courier", Font.PLAIN, 12 ) ); 
this.add( menu[i] ); 
} 


String[] menuItem_name = {"Start Game", "Stop Game", "Exit Game", 
"Game Color", 
"About..."}; 
menuItem = new JMenuItem[menuItem_name.length]; 
for( int i = 0; i < menuItem_name.length; i++ ) 
{ 
menuItem[i] = new JMenuItem( menuItem_name[i] ); 
menuItem[i].setFont( new Font( "Courier", Font.PLAIN, 12 ) ); 
menuItem[i].addActionListener( new ActionHandler() ); 
} 
menu[0].add( menuItem[0] ); 
menu[0].add( menuItem[1] ); 
menu[0].addSeparator(); 
menu[0].add( menuItem[2] ); 
menu[1].add( menuItem[3] ); 
menu[2].add( menuItem[4] ); 


String[] inner_menu_name = {"Game Speed", "Window Model", "Game Standard "}; 
JMenu[] inner_menu = new JMenu[inner_menu_name.length]; 
for( int i = 0; i < inner_menu_name.length; i++ ) 
{ 
inner_menu[i] = new JMenu( inner_menu_name[i] ); 
inner_menu[i].setFont( new Font( "Courier", Font.PLAIN, 12 ) ); 
menu[1].add( inner_menu[i] ); 
} 

ButtonGroup temp1 = new ButtonGroup(); 
String[] speedItem_name = {"Speed-1", "Speed-2", "Speed-3", "Speed-4", "Speed-5"}; 
speedItem = new JRadioButtonMenuItem[speedItem_name.length]; 
for( int i = 0; i < speedItem_name.length; i++ ) 
{ 
speedItem[i] = new JRadioButtonMenuItem( speedItem_name[i] ); 
inner_menu[0].add( speedItem[i] ); 
speedItem[i].setFont( new Font( "Courier", Font.PLAIN, 12 ) ); 
speedItem[i].addItemListener( new ItemHandler() ); 
temp1.add( speedItem[i] ); 
} 


ButtonGroup temp2 = new ButtonGroup(); 
String[] modelItem_name = { "Linux", "Mac", "Windows" }; 
modelItem = new JRadioButtonMenuItem[modelItem_name.length]; 
for( int i = 0; i < modelItem_name.length; i++ ) 
{ 
modelItem[i] = new JRadioButtonMenuItem( modelItem_name[i] ); 
inner_menu[1].add( modelItem[i] ); 
modelItem[i].setFont( new Font( "Courier", Font.PLAIN, 12 ) ); 
modelItem[i].addItemListener( new ItemHandler() ); 
temp2.add( modelItem[i] ); 
} 

ButtonGroup temp3 = new ButtonGroup(); 
String[] standardItem_name = { "60 * 40", "45 * 30", "30 * 20" }; 
standardItem = new JRadioButtonMenuItem[standardItem_name.length]; 
for( int i = 0; i < standardItem_name.length; i++ ) 
{ 
standardItem[i] = new JRadioButtonMenuItem( standardItem_name[i] ); 
inner_menu[2].add( standardItem[i] ); 
standardItem[i].setFont( new Font( "Courier", Font.PLAIN, 12 ) ); 
standardItem[i].addItemListener( new ItemHandler() ); 
temp3.add( standardItem[i] ); 
} 
looks = UIManager.getInstalledLookAndFeels(); 
} 

private class ActionHandler implements ActionListener 
{ 
public void actionPerformed( ActionEvent e ) 
{ 
if( e.getSource() == menuItem[0] ) 
{ 
owner.resetGame(); 
ConfigMenu.this.setVisible( false ); 
} 
else if( e.getSource() == menuItem[1] ) 
{ 
owner.stopGame(); 
ConfigMenu.this.setVisible( true ); 
ConfigMenu.this.setMenuEnable( true ); 
} 
else if( e.getSource() == menuItem[2] ) 
{ 
System.exit( 0 ); 
} 
else if( e.getSource() == menuItem[3] ) 
{ 
ConfigDialog temp = new ConfigDialog( owner ); 
temp.setVisible( true ); 
} 
else if( e.getSource() == menuItem[4] ) 
{ 
JOptionPane.showMessageDialog( null, "Sanke Game 2.0 Version!\n\n" + 
"Author: FinalCore\n\n" ); 
} 
} 
} 

private class ItemHandler implements ItemListener 
{ 
public void itemStateChanged( ItemEvent e ) 
{ 
for( int i = 0; i < speedItem.length; i++ ) 
{ 
if( e.getSource() == speedItem[i] ) 
{ 
owner.snakeTimer.setDelay( 150 - 30 * i ); 
} 
} 
if( e.getSource() == standardItem[0] ) 
{ 
owner.setGrid( 60, 40, 5 ); 
} 
else if( e.getSource() == standardItem[1] ) 
{ 
owner.setGrid( 45, 30, 10 ); 
} 
else if( e.getSource() == standardItem[2] ) 
{ 
owner.setGrid( 30, 20, 15 ); 
} 
for( int i = 0; i < modelItem.length; i++ ) 
{ 
if( e.getSource() == modelItem[i] ) 
{ 
try 
{ 
UIManager.setLookAndFeel( looks[i].getClassName() ); 
}catch(Exception ex){} 
} 
} 
} 
} 

public void setMenuEnable( boolean temp ) 
{ 
menu[1].setEnabled( temp ); 
} 

} 

ConfigDialog.java 

package SnakeGame; 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class ConfigDialog extends JDialog 
{ 
private Container c; 
private JFrame owner; 
private OwnPanel[] panel = new OwnPanel[4]; 
Box box1, box2; 
private JButton commitButton, cancelButton; 
Color[] color = new Color[4]; 
public ConfigDialog( Frame owner ) 
{ 
this.owner = (JFrame) owner; 
this.setSize( 400, 200 ); 
this.setResizable( false ); 
this.setTitle( "Config Your Game" ); 
this.c = this.getContentPane(); 
this.c.setBackground( Color.WHITE ); 
this.c.setLayout( new FlowLayout() ); 
this.box1 = Box.createVerticalBox(); 
for( int i = 0; i < panel.length; i++ ) 
{ 
panel[i] = new OwnPanel(); 
panel[i].addActionListener( new ActionHandler() ); 
this.box1.add( panel[i] ); 
this.box1.add( Box.createVerticalStrut( 4 ) ); 
} 
this.panel[0].setText( " Background" ); 
this.panel[1].setText( " Snake" ); 
this.panel[2].setText( " Bean" ); 
this.panel[3].setText( " EatedBean" ); 
this.panel[0].setBack( ColorGroup.COLOR_BACK ); 
this.panel[1].setBack( ColorGroup.COLOR_SNAKE ); 
this.panel[2].setBack( ColorGroup.COLOR_BEAN ); 
this.panel[3].setBack( ColorGroup.COLOR_EATEDBEAN ); 
this.box2 = Box.createHorizontalBox(); 
this.commitButton = new JButton( "确定" ); 
this.commitButton.setFont( Font.getFont( "Fixedsys" ) ); 
this.commitButton.addActionListener( new ActionHandler() ); 
this.cancelButton = new JButton( "取消" ); 
this.cancelButton.setFont( Font.getFont( "Fixedsys" ) ); 
this.cancelButton.addActionListener( new ActionHandler() ); 
this.box2.add( this.commitButton ); 
this.box2.add( Box.createHorizontalStrut( 20 ) ); 
this.box2.add( this.cancelButton ); 
this.box1.add( this.box2 ); 
this.c.add( this.box1, BorderLayout.NORTH ); 
this.setLocation( ( this.getToolkit().getScreenSize().width - this.getWidth() )/2, 
( this.getToolkit().getScreenSize().height - this.getHeight() )/2 ); 
this.setVisible( true ); 
} 
public void setOwnerColor( Color temp ) 
{ 
this.owner.getContentPane().setBackground( temp ); 
} 
private class ActionHandler implements ActionListener 
{ 
public void actionPerformed( ActionEvent e ) 
{ 
for( int i = 0; i < color.length; i++ ) 
{ 
if( e.getSource() == panel[i].reButton() ) 
{ 
color[i] = JColorChooser.showDialog( ConfigDialog.this, 
"Choose BackGround Color", 
Color.WHITE ); 
if( color[i] != null ) 
{ 
panel[i].setBack( color[i] ); 
} 
} 
} 
if( e.getSource() == commitButton ) 
{ 
color[0] = (color[0]==null?ColorGroup.COLOR_BACK:color[0]); 
color[1] = (color[1]==null?ColorGroup.COLOR_SNAKE:color[1]); 
color[2] = (color[2]==null?ColorGroup.COLOR_BEAN:color[2]); 
color[3] = (color[3]==null?ColorGroup.COLOR_EATEDBEAN:color[3]); 
ConfigDialog.this.setVisible( false ); 
ColorGroup.setCOLOR_BACK( color[0] ); 
owner.getContentPane().setBackground( color[0] ); 
ColorGroup.setCOLOR_SNAKE( color[1] ); 
ColorGroup.setCOLOR_BEAN( color[2] ); 
ColorGroup.setCOLOR_EATEDBEAN( color[3] ); 
ConfigDialog.this.dispose(); 
} 
else if( e.getSource() == cancelButton ) 
{ 
ConfigDialog.this.setVisible( false ); 
ConfigDialog.this.dispose(); 
} 

} 
} 
} 

class OwnPanel extends JPanel 
{ 
private JLabel temp1; 
private JTextField temp2; 
private JButton temp3; 
OwnPanel() 
{ 
temp1 = new JLabel(); 
temp1.setFont( Font.getFont( "Fixedsys" ) ); 
temp2 = new JTextField(); 
temp3 = new JButton( "Change" ); 
temp3.setFont( Font.getFont( "Fixedsys" ) ); 
temp2.setEditable( false ); 
temp2.setColumns( 10 ); 
this.add( temp1 ); 
this.add( temp2 ); 
this.add( temp3 ); 
this.setLayout( new GridLayout( 1, 3 ) ); 
} 
public void setButtonName( String temp ) 
{ 
temp3.setName( temp ); 
} 
public void setBack( Color temp ) 
{ 
temp2.setBackground( temp ); 
} 
public void setText( String temp ) 
{ 
temp1.setText( temp ); 
} 
public Object reButton() 
{ 
return temp3; 
} 
public void addActionListener( ActionListener ac ) 
{ 
temp3.addActionListener( ac ); 
} 
} 

Tools.java 

package SnakeGame; 

import java.awt.*; 
import javax.swing.*; 

class ColorGroup 
{ 
static Color COLOR_BACK = Color.WHITE; 
static Color COLOR_SNAKE = new Color( 43, 110, 187 ); 
static Color COLOR_BEAN = Color.BLUE; 
static Color COLOR_EATEDBEAN = Color.CYAN; 
static void setCOLOR_BACK( Color temp ) 
{ 
COLOR_BACK = temp; 
} 
static void setCOLOR_SNAKE( Color temp ) 
{ 
COLOR_SNAKE = temp; 
} 
static void setCOLOR_BEAN( Color temp ) 
{ 
COLOR_BEAN = temp; 
} 
static void setCOLOR_EATEDBEAN( Color temp ) 
{ 
COLOR_EATEDBEAN = temp; 
} 
} 


final class MenuGet 
{ 
public static JMenu getMenu( String temp ) 
{ 
JMenu reMenu = new JMenu( temp ); 
reMenu.setFont( Font.getFont( "Fixedsys" ) ); 
return reMenu; 
} 
} 

final class MenuItemGet 
{ 
public static JMenuItem getMenuItem( String temp ) 
{ 
JMenuItem reMenuItem = new JMenuItem( temp ); 
reMenuItem.setFont( Font.getFont( "Fixedsys" ) ); 
return reMenuItem; 
} 
} 

 

⌨️ 快捷键说明

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