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

📄 statusgui.java.svn-base

📁 這是一個JAVA語言寫的多代理人程式用來模擬飛機起飛或是降落的程式
💻 SVN-BASE
字号:
package gui;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import java.util.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class StatusGUI extends JPanel{
	
	// Instance Variables
	private int rows,cols;
	private GridBagConstraints c;
	
	// Instance variables - Bottom Panel[Status Panel]
	private JPanel statusPanel;
	private JLabel lstatus;
	private ArrayList <JLabel> alAgents;
	private HashMap <String, JLabel> hmStatus;
	private GridBagConstraints c2;
	private int statRows,
	            statcols;
	private JScrollPane spStatus;
	
	
	public StatusGUI()
	{
		rows = 0;
		cols = 0;
		
		// Base Panel Layout Options  [DO NOT EDIT]
		c = new GridBagConstraints();
		c.fill = GridBagConstraints.NONE;
		c.anchor = GridBagConstraints.CENTER;
		setLayout(new GridBagLayout());
		
		
		// Set-up Bottom Panel[Status Panel]
		initializeStatus();
		buildStatus();
		
		// Add Preliminary Panels
		c.gridx = rows;
		c.gridy = cols;
		cols++;
		add(spStatus,c);
		
	}
	
	private void initializeStatus()
	{
		statusPanel = new JPanel();
		lstatus = new JLabel("Status: ");
		alAgents = new ArrayList <JLabel>();
		hmStatus = new HashMap <String, JLabel>();
		c2 = new GridBagConstraints();
		statRows = 0;
		statcols = 0;
		spStatus = new JScrollPane(statusPanel);
		spStatus.setPreferredSize(new Dimension(800,500));
	}
	
	private void buildStatus()
	{
		statusPanel.setLayout(new GridBagLayout());
		statusPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
		c2.fill = GridBagConstraints.NONE;
		c2.anchor = GridBagConstraints.WEST;
		c2.gridx = statRows;
		c2.gridy = statcols;
		statcols++;
		c2.gridwidth = 2;
		statusPanel.add(lstatus,c2);
		c2.gridwidth = 1;
	}
	
	/**
	 * Adds a string object to listModel and updates the customer names located in the right hand column 
	 *
	 * @param   name  the name of the agent being added to the system.
	 * @return  void
	 */
	public void addAgent(String name)
	{	
		try
		{
			// status panel 
			addAgentStatus(name);
			
		}catch(Exception e)
		{
			System.out.println(e.getMessage());			
		}
	}
	
	private void addAgentStatus(String name)
	{
		JLabel lNameTemp,
		       lStatusTemp;
		lNameTemp = new JLabel(name + ":  ");
		lStatusTemp = new JLabel();
		
		alAgents.add(lNameTemp);
		hmStatus.put(name, lStatusTemp);
		
		c2.gridx = statRows;
		c2.gridy = statcols;
		statRows++;
		statusPanel.add(lNameTemp,c2);
		c2.gridx = statRows;
		c2.gridy = statcols;
		statusPanel.add(lStatusTemp,c2);
		statRows = 0;
		statcols++;
	}
	
	
	
	public void updateStatus(String agentName, String message)
	{
		hmStatus.get(agentName).setText(message);
		repaint();
	}
}

⌨️ 快捷键说明

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