📄 statusgui.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 + -