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

jadex.bdi.examples.hunterprey_classic.environment.CreaturePanel 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.hunterprey_classic.environment;

import jadex.bdi.examples.hunterprey_classic.Creature;
import jadex.bdi.examples.hunterprey_classic.Hunter;
import jadex.bdi.examples.hunterprey_classic.Observer;
import jadex.commons.SUtil;
import jadex.commons.gui.SGUI;
import jadex.commons.gui.jtable.ObjectTableModel;
import jadex.commons.gui.jtable.ResizeableTableHeader;
import jadex.commons.gui.jtable.SorterFilterTableModel;
import jadex.commons.gui.jtable.VisibilityTableColumnModel;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Image;
import java.io.ObjectInputStream;
import java.util.ArrayList;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;

/**
 *  Display an array of cretures in a table.
 */
public class CreaturePanel extends JPanel
{
	//-------- attributes --------

	/** The creatures. */
	protected Creature[] creatures;

	/** The table model. */
	protected ObjectTableModel tablemodel;

	/** The table. */
	protected JTable table;

	/** The table model. */
	protected ObjectTableModel tablemodel2;

	/** The table. */
	protected JTable table2;

	/** The hunter image. */
	protected Icon hunter;

	/** The prey image. */
	protected Icon prey;

	/** The observer image. */
	protected Icon observer;

	/** Flag to activate observer panel (only shows observers). */
	protected boolean	obs;

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

	/**
	 *  Create a creature panel.
	 */
	public CreaturePanel()
	{
		this(false);
	}

	/**
	 *	Create a creatuire or observer panel.
	 */
	public CreaturePanel(boolean obs)
	{
		this.obs	= obs;
		Image hunter_image	= ((ImageIcon)MapPanel.icons.getIcon("hunter")).getImage();
		Image prey_image	= ((ImageIcon)MapPanel.icons.getIcon("prey")).getImage();
		Image observer_image	= ((ImageIcon)MapPanel.icons.getIcon("observer")).getImage();
		hunter = new ImageIcon(hunter_image.getScaledInstance(20, 20, Image.SCALE_DEFAULT));
		prey = new ImageIcon(prey_image.getScaledInstance(20, 20, Image.SCALE_DEFAULT));
		observer = new ImageIcon(observer_image.getScaledInstance(20, 20, Image.SCALE_DEFAULT));

		if(!obs)
			this.tablemodel = new ObjectTableModel(new String[]{"Rank", "Type", "Name", "Age", "Points"});
		else
			this.tablemodel = new ObjectTableModel(new String[]{"No.", "Type", "Name", "Age"});
		tablemodel.setColumnClass(Integer.class, 0);
		tablemodel.setColumnClass(Icon.class, 1);
		tablemodel.setColumnClass(Integer.class, 3);
		if(!obs)
			tablemodel.setColumnClass(Integer.class, 4);
		SorterFilterTableModel tm = new SorterFilterTableModel(tablemodel);

		VisibilityTableColumnModel colmodel = new VisibilityTableColumnModel();
        ResizeableTableHeader header = new ResizeableTableHeader(colmodel);
        header.setIncludeHeaderWidth(true);
 
		this.table = new JTable(tm, colmodel);
		table.setFont(new Font("Arial", Font.PLAIN, 14));

		table.setRowHeight(hunter.getIconHeight()+4);
		table.setShowVerticalLines(false);
		table.createDefaultColumnsFromModel();
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        table.setTableHeader(header); 

		for(int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy