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

📄 configmenu.java

📁 greedy snake!greedy snake!
💻 JAVA
字号:
//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!&#92;n&#92;n" +
			"Author: FinalCore&#92;n&#92;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)
					{
						ex.printStackTrace();
					}
					
				}
				
			}
			
		}
		
	}
	public void setMenuEnable( boolean temp )
	{
		menu[1].setEnabled( temp );
	}

}

⌨️ 快捷键说明

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