All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.bdi.examples.blackjack.gui.GameStateFrame Maven / Gradle / Ivy

Go to download

The Jadex BDI applications package contain several example applications, benchmarks and testcases using BDI agents.

The newest version!
package jadex.bdi.examples.blackjack.gui;

import jadex.bdi.examples.blackjack.GameState;
import jadex.bdi.examples.blackjack.Player;
import jadex.commons.collection.SCollection;

import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import jadex.commons.beans.PropertyChangeEvent;
import jadex.commons.beans.PropertyChangeListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

/**
 *	This class represents the JPanel of one player as it is shown in the GUI.
 */
public class GameStateFrame extends JFrame
{
	/** The dealers panel. */
	protected PlayersPanel dealerpan;

	/** The control panel. */
	protected JPanel controlpanel;

	/** The players panel. */
	protected PlayersPanel playerpan;

	/** The top panel. */
	protected JPanel top;

	//-------- constructors --------

	/**
	 *  Create a new game state panel.
	 */
	public GameStateFrame(final GameState gamestate, JPanel controlpan)
	{
		getContentPane().setLayout(new GridBagLayout());

		dealerpan = new PlayersPanel();
		dealerpan.setLayout(new GridLayout(1,1));
		playerpan = new PlayersPanel();
		playerpan.setLayout(new GridLayout(0, 2));

		top = new JPanel(new GridLayout(1,2));
		top.add(dealerpan);
		setControlPanel(controlpan);

		getContentPane().add(top, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.WEST, GridBagConstraints.BOTH,
			new Insets(0,0,0,0), 0, 0));
		getContentPane().add(playerpan, new GridBagConstraints(0, 1, 1, 1, 3, 3, GridBagConstraints.WEST, GridBagConstraints.BOTH,
			new Insets(0,0,0,0), 0, 0));

		setGameState(gamestate);
	}

	/**
	 *  Set the game state.
	 *  @param gamestate The gamestate.
	 */
	public void setGameState(final GameState gamestate)
	{
		if(gamestate!=null)
		{
			gamestate.addPropertyChangeListener(new PropertyChangeListener()
			{
				public void propertyChange(PropertyChangeEvent evt)
				{
					updatePanel(gamestate);
				}
			});
			updatePanel(gamestate);
		}
		// todo: remove old
	}

	/**
	 *
	 */
	protected void updatePanel(GameState gamestate)
	{
		if(dealerpan.getPlayers().size()==0 && gamestate.getDealer()!=null)
			dealerpan.addPlayer(gamestate.getDealer());
		else if(gamestate.getDealer()!=null && !dealerpan.getPlayers().contains(gamestate.getDealer()))
			dealerpan.replacePlayer((Player)dealerpan.getPlayers().get(0), gamestate.getDealer());
		else if(gamestate.getDealer()==null && dealerpan.getPlayers().size()>0)
			dealerpan.removePlayer((Player)dealerpan.getPlayers().get(0));

		java.util.List curplayers = playerpan.getPlayers();
		Player[] players = gamestate.getPlayers();
		for(int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy