
jadex.bdi.examples.hunterprey_classic.environment.CreaturePanel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jadex-applications-bdi Show documentation
Show all versions of jadex-applications-bdi Show documentation
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