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

📄 configmenu.java

📁 自己写的java贪吃蛇小游戏。
💻 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 );
	}
	
}

⌨️ 快捷键说明

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