亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? javachess.java

?? chess 一個beguanyu國際象棋的一個Java源碼
?? JAVA
字號:
/*	JavaChess - The main class for the Java chess game.	Copyright (C) 2003 The Java-Chess team <info@java-chess.de>	This program is free software; you can redistribute it and/or	modify it under the terms of the GNU General Public License	as published by the Free Software Foundation; either version 2	of the License, or (at your option) any later version.	This program is distributed in the hope that it will be useful,	but WITHOUT ANY WARRANTY; without even the implied warranty of	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the	GNU General Public License for more details.	You should have received a copy of the GNU General Public License	along with this program; if not, write to the Free Software	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/package de.java_chess.javaChess;import de.java_chess.javaChess.action.*;import de.java_chess.javaChess.bitboard.*;import de.java_chess.javaChess.engine.*;import de.java_chess.javaChess.menu.*;import de.java_chess.javaChess.notation.*;import de.java_chess.javaChess.renderer.ChessBoardRenderer;import de.java_chess.javaChess.renderer2d.*;import de.java_chess.javaChess.game.Game;import de.java_chess.javaChess.game.GameImpl;import de.java_chess.javaChess.listener.EngineStatusListener;import de.java_chess.javaChess.util.*;import java.awt.event.*;import java.awt.event.ActionListener;import javax.swing.border.BevelBorder;import java.awt.*;import javax.swing.*;/** * The main class for the chess game, representing the GUI */public class JavaChess extends JFrame implements EngineStatusListener{	// Static variables	/**	 * The game instance.	 */	static JavaChess _instance;/** * Versionsnummer */	public final static String VERSIONINFO = "0.1.0 pre-alpha 3";	private JPanel contentPane;/** * Statuszeilen-Panel */	private StatusPanel jpStatus = new StatusPanel( VERSIONINFO );/** * Eigenes Panel f黵 das Schachbrett */	private JPanel jpBrett = new JPanel();/** * Own panel for game notation */		private NotationPanel jpNotation;/** * Own panel for engine output/debug etc. */		private EnginePanel jpEngine;/** * Own Panel for navigation buttons */		private NavigationPanel jpNavigation;	private Font textFont = new Font( "Serif", Font.PLAIN, 12 );/** * glassPane zum Reagieren auf Mausbewegungen etc.: * The glass pane overlays the menu bar and content pane, so it can intercept mouse movements and such. */	private JComponent glasspane = new JComponent()	{		public void processKeyEvent(KeyEvent e)		{			e.consume();		}	};	// Instance variables		/**		 * The current game.		 */		Game _game;		/**		 * The notation of the current game.		 */		GameNotation _gameNotation;		/**		 * The chess board		 */		BitBoard _board;		/**		 * The rendering component to display the board.		 */		ChessBoardRenderer _renderer;		/**		 * The chess engine.		 */		ChessEngine _engine;		/**		 * The menu items		 */		JMenuItem _exitItem;		/**		 * The game controller.		 */		GameController _controller;		/**		 * A timer for the game.		 */		GameTimerPanel _gameTimer;/** * GridBagLayout for chess board Panel */	GridBagLayout gridBagBrett = new GridBagLayout();/** * GridBagLayout for the navigation panel */	GridBagLayout gridBagNavigation = new GridBagLayout();/** * The Edit menu */	EditMenu editMenu;	// Constructors/** * Create a new instance of this chess game. */	public JavaChess()	{		super( "JavaChess");  // Set the title of the window.		this.enableEvents(AWTEvent.WINDOW_EVENT_MASK);		try		{			jbInit();			glasspane.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));			glasspane.addMouseListener( new MouseAdapter(){} );			setGlassPane(glasspane);			free();		}		catch(Exception e)		{			e.printStackTrace();		}		setDefaultFrameCoordinates();		setVisible(true);	}/** * Die GUI nach Nomenklatur des JBuilder * * @throws Exception */	private void jbInit() throws Exception {	    // Add some location for resources to the resource loader.	    ResourceLoader.getInstance().addLocation("jar:file:javaChess.jar!/de/java_chess/javaChess/renderer2d/images/");		_game = new GameImpl();		_gameNotation = new GameNotationImpl();		_board = new BitBoardImpl();		_engine = new ChessEngineImpl( _game, _gameNotation, _board, false);		((ChessEngineImpl)_engine).addEngineStatusListener( this );		// Create a timer with 40 min for each player.		_gameTimer = new GameTimerPanel( 40 * 60);		_controller = new GameController( _game, _gameNotation, _engine, _board, _gameTimer);		_renderer = new ChessBoardRenderer2D( _controller, _board);		_controller.setRenderer( _renderer);		editMenu = new EditMenu();		this.jpNotation = new NotationPanel( _gameNotation);		((GameNotationImpl)_gameNotation).setNotationPanel( jpNotation);		editMenu.setNotationPanel( jpNotation );		this.jpEngine = new EnginePanel();		((ChessEngineImpl)_engine).setEnginePanel( jpEngine );		((ChessEngineImpl)_engine).setStatusPanel( jpStatus );		this.jpNavigation = new NavigationPanel();//		setIconImage(Toolkit.getDefaultToolkit().createImage(VisFrame.class.getResource("jclogo.gif")));		contentPane = (JPanel) this.getContentPane();		contentPane.setLayout(new GridBagLayout());		this.setSize(new Dimension(800, 600));		this.addWindowListener(new java.awt.event.WindowAdapter()		{			public void windowClosing(WindowEvent e)			{				this_windowClosing(e);			}		});		JMenuBar menuBar = new JMenuBar();		JMenu fileMenu = new JMenu("File");		fileMenu.setMnemonic( KeyEvent.VK_F ); // Shortcut Alt-F		fileMenu.add( getMenuItem( new ResetGameAction()));		fileMenu.addSeparator();		fileMenu.add( getMenuItem( new LoadGameAction()));		fileMenu.addSeparator();		fileMenu.add( getMenuItem( new SaveGameAction( _gameNotation)));		fileMenu.add( getMenuItem( new SaveGameAsAction( _gameNotation)));		_exitItem = new JMenuItem( "Exit");		// Shortcut f黵 ALT-X zum Beenden:		this._exitItem.setAccelerator(javax.swing.KeyStroke.				getKeyStroke(88, java.awt.event.KeyEvent.ALT_MASK, false));		_exitItem.addActionListener(new java.awt.event.ActionListener()		{			public void actionPerformed(ActionEvent e)			{				System.exit( 0 );			}		});		// Create a separated exit item		fileMenu.addSeparator();		this.jpBrett.setLayout(gridBagBrett);//		this.jpBrett.setPreferredSize( new Dimension(520,520) );//		this.jpBrett.setMaximumSize( new Dimension(520,520) );//		this.jpBrett.setMinimumSize( new Dimension(520,520) );		this.jpBrett.setPreferredSize( new Dimension(430,430) );//		this.jpBrett.setMaximumSize( new Dimension(400,400) );		this.jpBrett.setMinimumSize( new Dimension(430,430) );		this.jpStatus.setPreferredSize( new Dimension(780, 20) );		this.jpStatus.setMinimumSize( new Dimension(780, 20) );		this.jpStatus.setMaximumSize( new Dimension(780, 20) );		this.jpEngine.setPreferredSize( new Dimension(780, 150) );		this.jpEngine.setMinimumSize( new Dimension(780, 150) );		this.jpEngine.setMaximumSize( new Dimension(780, 150) );		this.jpNavigation.setLayout( gridBagNavigation );		fileMenu.add( _exitItem);		// Add the file menu to the menu bar.		menuBar.add( fileMenu);		// Get the Edit menu from the according class and add to the menu bar.		menuBar.add( editMenu.getMenu() );		// Get the menu from the chess engine and add it to the menu bar.		menuBar.add( _engine.getMenu());		this.engineStatusChanged( (ChessEngineImpl)_engine );		// Create and add a help menu		JMenu helpMenu = new JMenu("Help");		helpMenu.add( new HelpAction());		helpMenu.addSeparator();		helpMenu.add( new AboutAction());		menuBar.add(Box.createHorizontalGlue());  // Move the help menu to the right.		menuBar.add( helpMenu);		// Create and set the menu.		this.setJMenuBar( menuBar );		contentPane.setForeground( Color.black );		contentPane.add(jpBrett,      new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0						,GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(2, 2, 2, 2), 0, 0)); // Brett		contentPane.add(_gameTimer,   new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0						,GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(2, 2, 2, 2), 0, 0)); // The Clock		contentPane.add(jpEngine,     new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0						,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 0, 0)); // Engineoutput		contentPane.add(jpStatus,     new GridBagConstraints(0, 3, 2, 1, 1.0, 0.0						,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(2, 2, 2, 2), 0, 0)); // Statuszeile		contentPane.add(jpNotation,   new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0						,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 0, 0));		contentPane.add(jpNavigation, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0						,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); // Notation etc.		jpBrett.add((ChessBoardRenderer2D)_renderer,   new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0						,GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		jpBrett.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED, Color.white, Color.white, new Color(148, 145, 140), new Color(103, 101, 98)));		this.pack();		this.setVisible( true);	}		// Methods		/**		 * The main method.		 *		 * @param args The commandline arguments.		 */		public static void main( String [] args) {				_instance = new JavaChess();		}		/**		 * Create a return a menu item for a given action.		 *		 * @param action The action.		 *		 * @return The menu item for this action.		 */		private JMenuItem getMenuItem( JavaChessAction action) {	JMenuItem item = new JMenuItem( action.getName());	item.addActionListener( action);	return item;		}		/**		 * Get the instance of this chess app.		 *		 * @return The instance of this chess app.		 */		public static final JavaChess getInstance() {	return _instance;		}		/**		 * Reset the game.		 */		public void reset() {	// Reset all the game components.	_game.reset();	_gameNotation.reset();	_board.initialPosition();	_engine.reset();	// Reset the timer to 40 min for each player.	_gameTimer.reset( 40 * 60);	_controller.reset();	_renderer.reset();		}	private void setDefaultFrameCoordinates()	{		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();		Dimension frameSize = packFrame();		setFrameSize(screenSize, frameSize);		placeFrame(screenSize, frameSize);	}	private void placeFrame(Dimension screenSize, Dimension frameSize)	{		setLocation(			(screenSize.width - frameSize.width) / 2,			(screenSize.height - frameSize.height) / 2);	}	private Dimension packFrame()	{		boolean packFrame = true;		if (packFrame)		{			pack();		}		else		{			validate();		}		return this.getSize();	}	private void setFrameSize(Dimension screenSize, Dimension frameSize)	{		if (frameSize.height > screenSize.height)		{			frameSize.height = screenSize.height;		}		if (frameSize.width > screenSize.width)		{			frameSize.width = screenSize.width;		}	}		private void busy() {	glasspane.requestFocus();	glasspane.setVisible(true);		}		private void free() {	glasspane.setVisible(false);		}		/**		 * If Java-Chess is closed over the 'X' and not via File-Exit, a process		 * would be still running		 *		 * @param e The Window event		 */		void this_windowClosing(WindowEvent e) {	System.exit( 0 );		}		public void engineStatusChanged(ChessEngineImpl engine)		{			if ( this.jpStatus != null )			{				this.jpStatus.setActionText( engine.getStatusDisplayString() );			}		}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美va亚洲va香蕉在线| 天堂av在线一区| 亚洲成人午夜电影| 国产精品主播直播| 欧美精品国产精品| 亚洲乱码国产乱码精品精的特点| 蜜桃一区二区三区四区| 欧美午夜电影在线播放| 国产精品久久久久影院亚瑟| 精品亚洲免费视频| 欧美欧美欧美欧美| 一区二区三区视频在线看| 国产一区二区三区香蕉| 日韩欧美在线123| 一区二区三区精品视频在线| 成a人片亚洲日本久久| 久久久久久免费| 日本aⅴ免费视频一区二区三区| 色婷婷激情综合| 国产日韩亚洲欧美综合| 九九久久精品视频| 欧美一区二区三区小说| 三级久久三级久久久| 欧美一a一片一级一片| 亚洲欧美日本韩国| 暴力调教一区二区三区| 国产精品久久久久久久久动漫| 韩国中文字幕2020精品| 精品少妇一区二区| 狠狠色2019综合网| 亚洲精品一区在线观看| 久久99精品久久久久久久久久久久| 69av一区二区三区| 日韩黄色免费电影| 91精品国产欧美一区二区| 亚洲国产aⅴ天堂久久| 欧美丰满少妇xxxxx高潮对白| 亚洲电影一级片| 制服丝袜亚洲精品中文字幕| 日韩电影在线观看一区| 欧美成人福利视频| 精品一区二区精品| 国产精品私人影院| 97久久超碰精品国产| 亚洲伊人伊色伊影伊综合网| 欧美午夜一区二区三区免费大片| 婷婷激情综合网| 欧美一区二区三区啪啪| 韩国女主播一区| 国产精品欧美一级免费| 色94色欧美sute亚洲线路二| 亚洲成av人片在线| 日韩欧美高清dvd碟片| 国产福利视频一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 91丨porny丨中文| 亚洲午夜激情av| 日韩欧美国产精品| 99亚偷拍自图区亚洲| 亚洲午夜在线观看视频在线| 精品久久人人做人人爽| 国产suv一区二区三区88区| 亚洲黄色小说网站| 日韩视频中午一区| 91一区在线观看| 婷婷六月综合网| 国产精品国产三级国产普通话蜜臀| 欧美性猛交xxxx黑人交| 国产一区二区免费在线| 亚洲黄色免费网站| 久久免费看少妇高潮| 色综合久久久久综合| 蜜桃精品视频在线| 亚洲卡通欧美制服中文| 精品久久久久久久一区二区蜜臀| 91视频一区二区三区| 久久国产人妖系列| 亚洲欧美激情在线| 欧美α欧美αv大片| 在线影院国内精品| 成人丝袜视频网| 美女一区二区在线观看| 亚洲免费观看高清完整版在线| 亚洲精品一区二区在线观看| 欧美综合一区二区三区| 国产乱码精品1区2区3区| 午夜电影久久久| 亚洲欧洲日韩在线| 久久色在线视频| 日韩一区二区免费在线观看| 91免费视频大全| 成人激情小说网站| 精品一区二区三区免费视频| 亚洲成人av资源| 亚洲九九爱视频| 中文字幕国产一区| 国产午夜亚洲精品不卡| 欧美不卡一区二区| 日韩三级电影网址| 91麻豆精品国产91| 欧美日韩一区二区三区四区五区| 99久久99久久综合| 成人激情黄色小说| 国产成人av影院| 国产在线精品一区二区| 久久国产视频网| 麻豆精品久久精品色综合| 亚洲成av人片在线| 爽好多水快深点欧美视频| 亚洲综合激情网| 亚洲一区国产视频| 亚洲国产日产av| 亚洲成av人片www| 婷婷夜色潮精品综合在线| 亚洲6080在线| 欧美bbbbb| 久久www免费人成看片高清| 九九九精品视频| 国产一二三精品| 波多野结衣在线aⅴ中文字幕不卡| 国产999精品久久| www.日韩精品| 在线观看日韩国产| 在线不卡一区二区| 日韩欧美成人一区| 国产亚洲欧美色| 国产精品久久久久久久久晋中| 亚洲视频 欧洲视频| 亚洲激情五月婷婷| 日韩一区精品字幕| 国内精品自线一区二区三区视频| 激情国产一区二区| 成人污视频在线观看| 色狠狠色狠狠综合| 欧美丰满美乳xxx高潮www| 精品毛片乱码1区2区3区| 国产网站一区二区三区| 亚洲色图制服诱惑| 日韩中文字幕1| 国产一区二区三区黄视频| 91香蕉视频在线| 91精品国产综合久久精品麻豆| 日韩视频免费观看高清完整版在线观看 | 国产在线视视频有精品| 国产精品99久久久久久久vr | 国产精品网站导航| 亚洲在线中文字幕| 国内精品免费在线观看| 97se亚洲国产综合自在线| 欧美高清你懂得| 国产午夜久久久久| 成人污视频在线观看| 欧美视频在线一区| 国产.欧美.日韩| 色综合色综合色综合| 欧美一区二区在线播放| 国产欧美一区二区精品秋霞影院| 亚洲欧美另类久久久精品| 蜜臀av一区二区| 色网站国产精品| 久久精品亚洲乱码伦伦中文 | 亚洲视频免费观看| 国内成+人亚洲+欧美+综合在线 | 国产成人精品免费网站| 91久久精品一区二区三| 久久综合九色综合97婷婷女人| 亚洲天天做日日做天天谢日日欢 | 久久众筹精品私拍模特| 亚洲黄色在线视频| 国产成人啪午夜精品网站男同| 欧美日精品一区视频| 久久久精品国产99久久精品芒果| 午夜欧美一区二区三区在线播放| 丰满放荡岳乱妇91ww| 欧美一级淫片007| 亚洲最新视频在线观看| 福利电影一区二区三区| 日韩午夜在线观看| 亚洲成人在线免费| 91黄视频在线| 国产精品午夜久久| 国内精品久久久久影院一蜜桃| 欧美日韩午夜在线视频| 亚洲一区二区在线免费观看视频| 国产夫妻精品视频| 久久你懂得1024| 精品一区二区久久| 精品久久国产老人久久综合| 天堂资源在线中文精品| 91激情五月电影| 一区二区三区不卡视频| 99久久免费精品| 日本一区二区电影| 成人亚洲一区二区一| 久久久精品天堂| 国产精品一区二区男女羞羞无遮挡 | 色婷婷精品大在线视频| 亚洲欧美日韩人成在线播放| 91在线视频在线| 亚洲桃色在线一区|